最近在做vs2008下windows mobile的SDI文档的界面开发,左下角的有一个新建的按钮,我想动态改变它的标题,但是我不论在框架类还是在视类下调用SetWindowText,在程序生成的时候就会报错,然后我上网找了一下资料,发现网上有两种解决办法。但是我看不太懂,请大家帮帮忙
TBBUTTONINFO BtnInfo;
BtnInfo.cbSize = sizeof(TBBUTTONINFO);
BtnInfo.dwMask = TBIF_TEXT;
BtnInfo.pszText = szText;//要替换的文本
SendMessage(g_hWndMenuBar, TB_SETBUTTONINFO, IDM_MAIN_MENU_LEFT, (LPARAM)(LPTBBUTTONINFO)&BtnInfo);
我有两个疑问,这几行代码应该放在哪个函数,还有就是怎么获得g_hWndMenuBar
TBBUTTONINFO BtnInfo;
BtnInfo.cbSize = sizeof(TBBUTTONINFO);
BtnInfo.dwMask = TBIF_TEXT;
BtnInfo.pszText = szText;//要替换的文本
SendMessage(g_hWndMenuBar, TB_SETBUTTONINFO, IDM_MAIN_MENU_LEFT, (LPARAM)(LPTBBUTTONINFO)&BtnInfo);
我有两个疑问,这几行代码应该放在哪个函数,还有就是怎么获得g_hWndMenuBar
解决方案 »
- MFC规则DLL编程 如何将处理数据保存到传入的参数中?
- VC++ dll WINVER设最低,兼容新版本的系统不?
- 自建控制台问题
- 为什么在对话框程序的PreTranslateMessage里面显示一个模态对话框会出错?
- 如何在VC中对excel写入多个工作区域
- 如何在自己程序中嵌入Excel的一个表格?
- 关于区位码转换成字符的问题
- Windows Sockets 2.0: (IOCP 微软例子,哪位发一个过来谢谢 Jones1000.exe )
- 谁能给说一下各种图形文件的编码格式 .bmp .jpg .....?
- VC(MFC中)用sndPlaySound()播送音乐只有咚咚声,为什么
- 如何动态创建activx对象的实例
- ISAPI过滤POST数据
winocc.cpp
line 245
遇到下面一段代码 CATCH_ALL(e)
{
lResult = AfxProcessWndProcException(e, &pThreadState->m_lastSentMsg);
TRACE(traceAppMsg, 0, _T("Warning: Uncaught exception in WindowProc (returning %ld).\n"),
lResult);
DELETE_EXCEPTION(e);
}
END_CATCH_ALL
然后就弹出一个消息框,说是遇到不适合参数
{
ASSERT(::IsWindow(m_hWnd)); if (m_pCtrlSite == NULL)
return ::GetWindowText(m_hWnd, lpszString, nMaxCount);
else
return m_pCtrlSite->GetWindowText(lpszString, nMaxCount);
}
其中else是245行
TBBUTTONINFO BtnInfo;
BtnInfo.cbSize = sizeof(TBBUTTONINFO);
BtnInfo.dwMask = TBIF_TEXT;
BtnInfo.pszText = szText;//要替换的文本
SendMessage(g_hWndMenuBar, TB_SETBUTTONINFO, IDM_MAIN_MENU_LEFT, (LPARAM)(LPTBBUTTONINFO)&BtnInfo);
其中g_hWndMenuBar可用函数SHFindMenuBar求得,该函数的参数就是menubar的所属窗口的hwnd
参考文章http://blog.csdn.net/coderwu/archive/2009/07/15/4350578.aspx