新手问题:如何得到对话框的句柄 运行一个程序,在程序中执行一个命令之后,弹出一个对话框,如何得到它的句柄呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 弹出一个对话框指针->GetSafeHwnd();在新对话框类里就直接this->GetSafeHwnd(); 是作二次开发你说的:对话框指针->GetSafeHwnd();那个指针怎么拿得到呢?不过我取得到了消息字符串 弹出一个对话框,你是怎么弹的?DoModal? Create+ShowWindow? 一个应用程序里面有命令行在命令行中输入:pagesetup按回车之后,就会弹出一个设置对话框 void myBackCall::whenOpen(const char * cmdStr){ if ( strcmp(cmdStr,"open" ) == 0 ) { // 我想在此添加代码 }}myBackCall是继承应用程序的,在应用程序中输入命令时,这个函数会被激发,如果命令是open就执行,,, 这个不太好办,可能必须要用EnumThreadWindows来暴力查找了,必竟原程序没有提供给你这个接口,你要想获得就只能通过“非法途径”先写一个Enum的回调函数BOOL CALLBACK EnumThreadWndProc( HWND hwnd, LPARAM lParam ){// 在这里你就获得了这个线程拥有的每一个窗体,但你要通过标题之类的判断一下,不要伤及无辜。}调用:首先获得当前线程的名柄HANDLE hThread = GetCurrentThread();EnumThreadWindows( hThread, EnumThreadWndProc, 0 ); to fireseed:很感谢你的回答,但是暴力查找,涉及的太多了,对新手来说。可不可以通过消息钩子函数呢?应用程提供有这样的接口,可以在应用程序处理之前捕获任何按键消息:比如WM_CHAR,它可以对某个按键或同时按下CTRL+V键的捕捉,如何知道在按回车键之前,用户是按下了open呢? m_hWnd 就是他的句丙了吧,直接用,不用再定义!! 是dll问题?还是我写的问题? 请教各位 xtreme toolkit pro引用XT_LOGFONT 总是出错,不知何故 关于MSVCR90.DLL的问题 自学编程的进来 单文档静态切分窗口成三视的问题 散200分,我们被比尔忽悠了...... 求《Visual C++数字图像处理》(第二版)一书的光盘源码. 用Hough变换进行圆检测的问题 诚恳请教:ADO数据绑定问题 要从CObject派生新类CWave,怎么找不到CObject啊!!! 双喜临门啊,散200分 ■■■ VC 的同志们 帮帮忙 啊 !!!!!
你说的:对话框指针->GetSafeHwnd();那个指针怎么拿得到呢?
不过我取得到了消息字符串
在命令行中输入:pagesetup
按回车之后,就会弹出一个设置对话框
{
if ( strcmp(cmdStr,"open" ) == 0 )
{
// 我想在此添加代码
}
}
myBackCall是继承应用程序的,在应用程序中输入命令时,这个函数会被激发,如果命令是open就执行,,,
BOOL CALLBACK EnumThreadWndProc( HWND hwnd, LPARAM lParam )
{
// 在这里你就获得了这个线程拥有的每一个窗体,但你要通过标题之类的判断一下,不要伤及无辜。
}
调用:首先获得当前线程的名柄
HANDLE hThread = GetCurrentThread();
EnumThreadWindows( hThread, EnumThreadWndProc, 0 );
很感谢你的回答,但是暴力查找,涉及的太多了,对新手来说。
可不可以通过消息钩子函数呢?应用程提供有这样的接口,可以在应用程序处理之前捕获任何按键消息:比如WM_CHAR,它可以对某个按键或同时按下CTRL+V键的捕捉,如何知道在按回车键之前,用户是按下了open呢?