C++ C++;WinApi选项卡帮助调用主静态栏
大家好,我希望有人能帮助我,我在一个简单的应用程序,使用标签控件,我已经设置好了,工作良好。下面是第二个对话框选项卡的“我的处理程序”,其中包含一个弹出窗口,用于确认单击了按钮,该按钮正常工作C++ C++;WinApi选项卡帮助调用主静态栏,c++,winapi,tabs,controls,C++,Winapi,Tabs,Controls,大家好,我希望有人能帮助我,我在一个简单的应用程序,使用标签控件,我已经设置好了,工作良好。下面是第二个对话框选项卡的“我的处理程序”,其中包含一个弹出窗口,用于确认单击了按钮,该按钮正常工作 INT_PTR CALLBACK TabDialogTwo(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) { switch (uMsg) { case WM_INITDIALOG: break;
INT_PTR CALLBACK TabDialogTwo(HWND hwndDlg,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
switch (uMsg)
{
case WM_INITDIALOG:
break;
case WM_COMMAND:
{
switch (LOWORD(wParam))
{
case IDC_CHECK_ACCOUNT:
// This doesnt work
HWND hwndStatic = GetDlgItem(hwndDlg, IDC_STATIC1);
Static_SetText(hwndStatic, "Button Works");
// This does as expected
MessageBox(hwndDlg,TEXT("User Account Selected"),TEXT("Button"),0);
break;
}
break;
}
}
return FALSE ;
}
我的问题是选项卡控件上的按钮无法使用此代码更新静态栏
// This doesnt work from inside the tab window but does work in my intial dialog function
HWND hwndStatic = GetDlgItem(hwndDlg, IDC_STATIC1);
Static_SetText(hwndStatic, "Button Works???");
是否需要将句柄更改为hwnd->hwndDlg?这是未定义的,因为它不是
我想做的就是能够在选项卡控件中更改我的状态栏,这可能吗?我已经连续搜索了8天,所以我想问问专家
非常感谢
更新修复:请参阅下面的Pezcode示例。感谢所有帮助人员。更换
HWND hwndStatic = GetDlgItem(hwndDlg, IDC_STATIC1);
与
GetDlgItem
仅获取您提供给它的窗口内的控件hwndDlg
在该上下文中是选项卡内的对话框。但是要获得主对话框静态条的hwndStatic
句柄,您必须升级两个级别(通过GetParent
API)。
上一个是选项卡控件,下一个是主对话框。谢谢Pezcode,它起作用了。你让我很高兴,因为我要把这一切都扔掉。还有卢斯坎和枪手thx顶级球员。
HWND hwndStatic = GetDlgItem(GetParent(GetParent(hwndDlg)), IDC_STATIC1);