第一步用查找窗口,得到应用程序的句柄 HWND hPS=FindWindow( _T("窗口标题"), NULL);
第二步添加消息钩子,g_hPMsg = SetWindowsHookEx(WH_GETMESSAGE, GetMsgProc, g_hinstDll, dwThreadID);
第三步 回调函数中单击菜单项消息
LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
……
MSG *msg = (MSG*)lParam;
int wld = LOWORD(msg->wParam);
switch (msg->message)
……
case WM_COMMAND:
wld是单击菜单项的句柄吧,
现在如何根据wld得到单击的菜单项上的文字内容?
第二步添加消息钩子,g_hPMsg = SetWindowsHookEx(WH_GETMESSAGE, GetMsgProc, g_hinstDll, dwThreadID);
第三步 回调函数中单击菜单项消息
LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
……
MSG *msg = (MSG*)lParam;
int wld = LOWORD(msg->wParam);
switch (msg->message)
……
case WM_COMMAND:
wld是单击菜单项的句柄吧,
现在如何根据wld得到单击的菜单项上的文字内容?
解决方案 »
- wtl中消息无法到达的问题
- 求思路:如何在程序中通过版本选择选项,使用不同的数据结构来读取数据
- 请教,全局函数如何使用成员函数和成员变量
- Undocumented NT还是Undocumented 2000
- 如何把从数据中画的图形写入到内存中去???再在屏幕上显示出来?
- 如何获得图片所显示的文字信息?
- 一个今年6月才从计算机专业毕业的人想对还在校园里的计算机专业学生说的话。
- 关于图像处理和根据距离分类的问题
- 到底有多少人听说过或看过中央台“同一首歌”这个节目?要去现场,想统计此节目在本行里的知名程度
- 请教各位mshtml解析html文件中嵌套表格方法
- vc++ 软件适应分辨率的问题如何解决?
- 其他进程中如何控制IME拼音输入法退出
函数原型:
Int GetWindowText(HWND hWnd,LPTSTR lpString,Int nMaxCount);
hWnd:带文本的窗口或控件的句柄。
IpString:指向接收文本的缓冲区的指针。
nMaxCount:指定要保存在缓冲区内的字符的最大个数,其中包含NULL字符。如果文本超过界限,它就被截断。
通过WM_COMMAND消息获取了菜单ID(wld),现如何根据应用程序句柄和菜单ID,获取这个菜单项的文字内容。
如何加上应用程序句柄,得到菜单项的文字内容?
怪不得不能直接查CMenu获得方法呢API我记得是GetMenuInfo
CMenu *pMenu=AfxGetMainWnd()->GetMenu();
pMenu->GetMenuString(wld,strName,MF_BYCOMMAND);
MessageBox(strName);
LPCTSTR GetMenuItemText(HMENU hMenu, UINT nID)
{
TCHAR szBuf[256]= {0};
MENUITEMINFO menuInfo = {0};
menuInfo.cbSize = sizeof(MENUITEMINFO);
menuInfo.fMask = MIIM_TYPE;
menuInfo.dwTypeData = szBuf;
menuInfo.cch = 255;
GetMenuItemInfo(hMenu, nID, FALSE, &menuInfo);
TRACE( _T("Menu %d ==> %s\n"), nID, menuInfo.dwTypeData ); return menuInfo.dwTypeData;
}
是在 InitPopUpMenu 中把
还原平均 Ctrl+Z
填充(&L)... Shift+F5
彩块化 Ctrl+F
为什么在同一个菜单中的某些菜单项就取不到?
新建(&N)... Ctrl+N
打开(&O)... Ctrl+O
浏览(&B)... Shift+Ctrl+O
打开为(&A)... Alt+Ctrl+O
浏览(&B)... Shift+Ctrl+O
打开(&O)... Ctrl+O
新建(&N)... Ctrl+N
关于 Photoshop(&A)...
还原彩块化 Ctrl+Z
向前(&W) Shift+Ctrl+Z
返回(&K) Alt+Ctrl+Z
向前(&W) Shift+Ctrl+Z
还原彩块化 Ctrl+Z
关于 Photoshop(&A)...
位图(&B)
灰度(&G)
双色调(&D)
灰度(&G)
位图(&B)
彩块化 Ctrl+F