送分的问题,快来看看! 1.如何以编程的方式在列表框(ListBox)中选中一项Item(就是以代码实现鼠标 选中某项)?2.如何在程序中打开一个Exe文件,例如notepad.exe?3.点击一个按钮,要求用户输入一个字符串,需要另外写一个form专门来接受这个 字符串吗,有没有类似InputBox的东西? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.CListBox::SetTopIndex 2.WinExec 1. CList m_list_ctrl; CString str; m_list_ctrl.GetLBText(m_list_ctrl.GetCurSel(),str); //str既为选中的值。2.WinExec (notepad);具体怎么调用,我忘掉了,大概是这个样子的。3.不用另行做Form.其实很简单,加入一个EditBox,你可以在初始化对话框时隐藏它,而在点击按钮时让它显示。 下面是实现:CDialog::OnInitDialog(){ GetDlgItem(EDIT_BOX)->ShowWindow(SW_HIDE); ………}CDialog::OnButton(){ GetDlgItem(EDIT_BOX)->ShowWindow(SW_SHOW); ………} 1.SetCurSel( int nSelect );2.system("notepad.exe");3.应该没有,再做一个对话框吧。可以研究一下MessageBox()、AfxMessageBox(). 1. CList m_list_ctrl; CString str; m_list_ctrl.GetLBText(m_list_ctrl.GetCurSel(),str); //str既为选中的值。2.WinExec (notepad)或CreateProcess()或ShellExecute()3:我不太明白你的意思,如果你想要求值接受字符串的话可一些类是下面的判断函数:(只需要将ascii值改一下就可以了)如果设定控件NUMBER属性的话将只能键入数字键,有时候不太合适。因此派生一个CEdit的子类,然后重载OnChar函数。由于键码1-26分别对应CtrlA-CtrlZ,因此需要允许编辑控制键,同时还要允许数字键和小数点。VC6.0调试通过。void CNumEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { // TODO: Add your message handler code here and/or call default if((nChar>0 && nChar<27) || // 允许控制字符如 Ctrl-C、Ctrl-V 等 ::isdigit(nChar) || nChar == (UINT)'.') CEdit::OnChar(nChar, nRepCnt, nFlags);}最后在自己的对话框中声明一个自己的编辑框变量,并将它与控件绑定。绑定方法有两种:1. 通过ClassWizard添加对应的CEdit变量,然后手工将.h头文件中的变量类型由CEdit改为CNumEdit即可。VS.net中还可以直接绑定自己定义的派生类CNumEdit,就不需要手工去改了。2. 直接手工添加CNumEdit变量到对话框,然后在重载对话框的 OnInitDialog函数,加入下面语句: CMyNumEditA.SubclassDlgItem(IDC_EDIT1,this); CMyNumEditB.SubclassDlgItem(IDC_EDIT2,this); 1.你查看clistbox的方法就可以很容易的知道呀,好像是setCurSel();2.WinExec();3.做个对话框也很容易嘛!要不用editbox也行! 2.三个SDK函数 winexec, shellexecute,createprocess可以使用。WinExec最简单,两个参数,前一个指定路径,后一个指定显示方式.后一个参数值得说一下,比如泥用 SW_SHOWMAXMIZED方式去加载一个无最大化按钮的程序,就是Neterm,calc等等,就不会出现正常的窗体,但是已经被加到任务列表里了。ShellExecute较 WinExex灵活一点,可以指定工作目录,下面的Example就是直接打开 c:\temp\1.txt,而不用加载与 txt文件关联的应用程序,很多安装程序完成后都会打开一个窗口,来显示Readme or Faq,我猜就是这么作的啦.ShellExecute(NULL,NULL,_T("1.txt"),NULL,_T("c:\\temp"),SW_SHOWMAXMIZED)CreateProcess最复杂,一共有十个参数,不过大部分都可以用NULL代替,它可以指定进程的安全属性,继承信息,类的优先级等等.来看个很简单的Example: STARTUPINFO stinfo//启动窗口的信息 PROCESSINFO procinfo //进程的信息 CreateProcess(NULL,_T("notepad.exe"),NULL,NULL.FALSE,NORMAL_PRIORITY_ CLASS,NULL,NULL, &stinfo,&procinfo) 2如果 dos 程序 system("*.exe");win32 最好用STARTUPINFO stinfo;PROCESS_INFORMATION procinfo;CreateProcess(NULL,"open.exe",NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL,&stinfo,&procinfo); 非常感谢大家的帮助,不过我第一个问题还是没有解决我用m_lst2.SetCurSel(m_lst2.GetCurSel()+1)还是不能把鼠标移到下一项鼠标还是没动。大侠帮忙阿 【求助】IRtRawDataCreator& Instance();此函数的作用是? 请教数据库多表联合操作的问题 Image *image1;如何判断这个指针是否有内容 VC视频处理问题,请各位大侠多指教啊,挺急的! 读取指定内存的数据进行排序后做为地址 ++++立即结贴:界面和数据库的两个简单基础问题,经验人士给个提示吧++++ 怎样使在Edit中输入的文本自动换行? 急:寻求Sleep的替代代码 ISAPI的全局变量问题 我想用vc截取网页的一部分然后显示在我的WebBrowser控件上,怎样实现呢? 一个关于往文件中写回车的小问题,请大家帮忙!谢谢!急急急。。。!!! 问个菜问题
2.WinExec
CString str;
m_list_ctrl.GetLBText(m_list_ctrl.GetCurSel(),str);
//str既为选中的值。
2.WinExec (notepad);具体怎么调用,我忘掉了,大概是这个样子的。3.不用另行做Form.其实很简单,加入一个EditBox,你可以在初始化对话框时隐藏它,而在点击按钮时让它显示。
下面是实现:
CDialog::OnInitDialog()
{
GetDlgItem(EDIT_BOX)->ShowWindow(SW_HIDE);
………
}
CDialog::OnButton()
{
GetDlgItem(EDIT_BOX)->ShowWindow(SW_SHOW);
………
}
2.system("notepad.exe");
3.应该没有,再做一个对话框吧。可以研究一下MessageBox()、AfxMessageBox().
CString str;
m_list_ctrl.GetLBText(m_list_ctrl.GetCurSel(),str);
//str既为选中的值。
2.WinExec (notepad)或CreateProcess()或ShellExecute()3:我不太明白你的意思,如果你想要求值接受字符串的话
可一些类是下面的判断函数:(只需要将ascii值改一下就可以了)
如果设定控件NUMBER属性的话将只能键入数字键,有时候不太合适。
因此派生一个CEdit的子类,然后重载OnChar函数。
由于键码1-26分别对应CtrlA-CtrlZ,因此需要允许编辑控制键,
同时还要允许数字键和小数点。VC6.0调试通过。void CNumEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) {
// TODO: Add your message handler code here and/or call default
if((nChar>0 && nChar<27) || // 允许控制字符如 Ctrl-C、Ctrl-V 等
::isdigit(nChar) || nChar == (UINT)'.')
CEdit::OnChar(nChar, nRepCnt, nFlags);
}最后在自己的对话框中声明一个自己的编辑框变量,并将它与控件绑定。绑定方法有两
种:
1. 通过ClassWizard添加对应的CEdit变量,然后手工将.h头文件中的变量类型由CEdit
改为CNumEdit即可。VS.net中还可以直接绑定自己定义的派生类CNumEdit,就不需要手
工去改了。
2. 直接手工添加CNumEdit变量到对话框,然后在重载对话框的 OnInitDialog函数,加
入下面语句:
CMyNumEditA.SubclassDlgItem(IDC_EDIT1,this);
CMyNumEditB.SubclassDlgItem(IDC_EDIT2,this);
2.WinExec();
3.做个对话框也很容易嘛!要不用editbox也行!
三个SDK函数 winexec, shellexecute,createprocess可以使用。WinExec最简单,两个参数,前一个指定路径,后一个指定显示方式.后一个参数值得说一下,比如泥用 SW_SHOWMAXMIZED方式去加载一个无最大化按钮的程序,就是Neterm,calc等等,就不会出现正常的窗体,但是已经被加到任务列表里了。
ShellExecute较 WinExex灵活一点,可以指定工作目录,下面的Example就是直接打开 c:\temp\1.txt,而不用加载与 txt文件关联的应用程序,很多安装程序完成后都会打开一个窗口,来显示Readme or Faq,我猜就是这么作的啦.
ShellExecute(NULL,NULL,_T("1.txt"),NULL,_T("c:\\temp"),SW_SHOWMAXMIZED)
CreateProcess最复杂,一共有十个参数,不过大部分都可以用NULL代替,它可以指定进程的安全属性,继承信息,类的优先级等等.来看个很简单的Example:
STARTUPINFO stinfo
//启动窗口的信息
PROCESSINFO procinfo //进程的信息
CreateProcess(NULL,_T("notepad.exe"),NULL,NULL.FALSE,
NORMAL_PRIORITY_
CLASS,NULL,NULL, &stinfo,&procinfo)
如果 dos 程序 system("*.exe");
win32 最好用STARTUPINFO stinfo;
PROCESS_INFORMATION procinfo;
CreateProcess(
NULL,"open.exe",NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL,&stinfo,&procinfo);