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,书上说该段代码实际获得组合框的值,并运行相应程序?这是什么意思?我写上代码,并没有运行什么程序啊。。。。。。。。 展开
{
// 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,书上说该段代码实际获得组合框的值,并运行相应程序?这是什么意思?我写上代码,并没有运行什么程序啊。。。。。。。。 展开
2个回答
展开全部
m_strprotorun的值应该在组合框选择消息函数里面获取组合框选择的值,使用UpdateData(TRUE)是不能获取组合框选择的值的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、你的OnProgtorun是关联到什么事件的?也即CPP文件里面BEGIN_MESSAGE_MAP和END_MESSAGE_MAP中间有OnProgtorun的一行是怎么写的?
2、你的电脑上PATH路径里能找到pbrush.exe吗?
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);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询