龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

Visual C++编程技巧小结(2)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
5. 怎样加栽其他的应用程序? 我记得这好象是出场频度很高的问题。 三个SDK函数 winexec, shellexecute,createprocess可以使用。 WinExec 最简单,两个参数,前一个指

   5. 怎样加栽其他的应用程序?

   我记得这好象是出场频度很高的问题。

   三个SDK函数 winexec, shellexecute,createprocess可以使用。

   WinExec 最简单,两个参数,前一个指定路径,后一个指定显示方式.后一个参数值得说一下,比如泥用 SW_SHOWMAXMIZED 方式去加栽一个无最大化按钮的程序,就是Neterm,calc 等等,就不会出现正常的 窗体,但是已经被加到任务列表里了。

   ShellExecute较 WinExex灵活一点,可以指定工作目录,下面的 Example就是直接打开c: emp1.txt,而不用加栽与 txt 文件关联的应用程序,很多安装程序完成后都会打开一个窗口,来显示Readme or Faq,偶猜就是这么作的啦。

ShellExecute(NULL,NULL,_T("1.txt"),NULL,_T("c: emp"),SW_SHOWMAXMIZED);

   CreateProcess最复杂,一共有十个参数,不过大部分都可以用NULL 代替,它可以指定进程的安全属性,继承信息,类的优先级等等.来看个很简单的 Example:

STARTUPINFO stinfo; //启动窗口的信息
PROCESSINFO procinfo; //进程的信息
CreateProcess(NULL,_T("notepad.exe"),NULL,NULL.FALSE, NORMAL_PRIORITY_
CLASS,NULL,NULL, &stinfo,&procinfo); 

   6. 确定应用程序的 路径

   前些天好象有人问过这个问题.

   Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。

   Example:

TCHAR exeFullPath[MAX_PATH]; // MAX_PATH在API中定义了吧,好象是128
GetModuleFileName(NULL,exeFullPath,MAX_PATH) 

   7. 获得各种目录信息

   Windows目录: Use "GetWindowsDirectory“

   Windows下的system目录: Use "GetSystemDirectory"

   temp目录: Use "GetTempPath "

   当前目录: Use "GetCurrentDirectory"

   请注意前两个函数的第一个参数为 目录变量名,后一个为缓冲区; 后两个相反.

   8. 如何自定义消息

   也有人问过的,其实不难。

   (1) 手工定义消息,可以这么写 #define WM_MY_MESSAGE(WM_USER+100), MS 推荐的至少是 WM_USER+100;

   (2)写消息处理函数,用 WPARAM,LPARAM返回LRESULT.

LRESULT CMainFrame::OnMyMessage(WPARAM wparam,LPARAM lParam)
{
  //加入你的处理函数

   (3) 在类的 AFX_MSG处进行声明,也就是常说的"宏映射"

收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!

热评话题

按钮 内容不能为空!
立刻说两句吧! 查看0条评论
精彩图集

赞助商链接