MFC中组合框问题!!!!

voidCDay2Dlg::OnProgtorun(){//TODO:AddyourcontrolnotificationhandlercodehereUpdateDat... void CDay2Dlg::OnProgtorun()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CString strPgmName;
strPgmName=m_strprotorun;
strPgmName.MakeUpper();
if(strPgmName=="PAINT")
WinExec("pbrush.exe",SW_SHOW);
if(strPgmName=="NOTEPAD")
WinExec("notepad.exe",SW_SHOW);

}
看这段代码,m_strprotorun是组合框的变量,原组合框中有两个数据PAINT和NOTEPAD,书上说该段代码实际获得组合框的值,并运行相应程序?这是什么意思?我写上代码,并没有运行什么程序啊。。。。。。。。
展开
 我来答
归悦欣cf
2014-04-08 · TA获得超过1444个赞
知道大有可为答主
回答量:4250
采纳率:59%
帮助的人:1331万
展开全部
m_strprotorun的值应该在组合框选择消息函数里面获取组合框选择的值,使用UpdateData(TRUE)是不能获取组合框选择的值的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
intehel
2014-04-08 · TA获得超过1293个赞
知道大有可为答主
回答量:1601
采纳率:100%
帮助的人:1772万
展开全部
1、你的OnProgtorun是关联到什么事件的?也即CPP文件里面BEGIN_MESSAGE_MAP和END_MESSAGE_MAP中间有OnProgtorun的一行是怎么写的?

2、你的电脑上PATH路径里能找到pbrush.exe吗?
更多追问追答
追问
我刚学,不懂,OnProgtorun不是给组合框添加的函数么?还有主对话框中有一个BUTTON控件,ID为IDE_PROGRUN,当组合框中选择NOTEPAD时,点击这个BUTTON控件,会运行记事本程序。。。。
追答

已测试,请对比一下你的工程。


// Day2Dlg.cpp : implementation file
//

// 省略不重要的部分

void CDay2Dlg::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CDay2Dlg)
    DDX_CBString(pDX, IDC_PGMNAME, m_strprotorun);
    //}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CDay2Dlg, CDialog)
    //{{AFX_MSG_MAP(CDay2Dlg)
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()
    ON_BN_CLICKED(IDC_PROGRUN, OnProgrun)
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()

void CDay2Dlg::OnProgrun() 
{
    UpdateData(TRUE);
    CString strPgmName;
    strPgmName=m_strprotorun;
    strPgmName.MakeUpper();
    if(strPgmName=="PAINT")
        WinExec("pbrush.exe",SW_SHOW);
    if(strPgmName=="NOTEPAD")
        WinExec("notepad.exe",SW_SHOW);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式