多界面多控件怎么实现?

jiaerboy 2009-09-01 11:24:32
我是这样想的,,有A,B,C这样三个菜单,,每点一个菜单,在客户区都显示不同的控件(控件多一些),这该怎么实现?郁闷中
...全文
79 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq539929779 2009-09-10
  • 打赏
  • 举报
回复
i 服了 u
心留 2009-09-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 pady_pady 的回复:]
做三个对话框,指定为children,并指定x,y pos,也可以在WM_initdialog里用movewidow。主对话框包含dlg1,dlg2,dlg3 的头文件。当点第一个按钮,dlg1->ShowWindow(SW_SHOW);dlg2->ShowWindow(SW_HIDE);dlg3->ShowWindow(SW_Hide);

[/Quote]


聪明
feilinhe 2009-09-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 learnhard 的回复:]
你把这三组控件分别放到不同的tab中不行吗?以属性页控件来显示,这样多方便
[/Quote]
这个很好,你也可以这样,点击不同的菜单,然让相应的按钮显示隐藏
You Try Me 2009-09-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 pady_pady 的回复:]
做三个对话框,指定为children,并指定x,y pos,也可以在WM_initdialog里用movewidow。主对话框包含dlg1,dlg2,dlg3 的头文件。当点第一个按钮,dlg1->ShowWindow(SW_SHOW);dlg2->ShowWindow(SW_HIDE);dlg3->ShowWindow(SW_Hide);

[/Quote]
我们也打算这么做
up up
pady_pady 2009-09-02
  • 打赏
  • 举报
回复
做三个对话框,指定为children,并指定x,y pos,也可以在WM_initdialog里用movewidow。主对话框包含dlg1,dlg2,dlg3 的头文件。当点第一个按钮,dlg1->ShowWindow(SW_SHOW);dlg2->ShowWindow(SW_HIDE);dlg3->ShowWindow(SW_Hide);
Conry 2009-09-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 pady_pady 的回复:]
做三个对话框,指定为children,并指定x,y pos,也可以在WM_initdialog里用movewidow。主对话框包含dlg1,dlg2,dlg3 的头文件。当点第一个按钮,dlg1->ShowWindow(SW_SHOW);dlg2->ShowWindow(SW_HIDE);dlg3->ShowWindow(SW_Hide);

[/Quote]
up
俺就经常这么干
kylinbu 2009-09-02
  • 打赏
  • 举报
回复
2楼的做法聪明可取

如果鉴于通用控件 和 布局的考虑,非要在同一个DIALOG里的话,用
GetDlgItem(IDC_ID)->ShowWindow(SW_SHOW); // 实现显示
GetDlgItem(IDC_ID)->ShowWindow(SW_HIDE); // 实现隐藏



codelast.com 2009-09-02
  • 打赏
  • 举报
回复
你把这三组控件分别放到不同的tab中不行吗?以属性页控件来显示,这样多方便
jiaerboy 2009-09-02
  • 打赏
  • 举报
回复
我是这样做的
#define NUM_SAFE (sizeof (Safe) / sizeof (Safe[0]))
CONTROLS Safe[]={
TEXT("button"), TEXT("事件"), BS_GROUPBOX, 10,50,500,250, IDC_SAFE_DES_GRP,
WC_LISTVIEW, NULL, LVS_REPORT|WS_BORDER, 15,70,490,200,IDC_SAFE_DES_LISTVIEW,
TEXT("button"), TEXT("开始接收"), BS_PUSHBUTTON,15,275,80,20, IDC_SAFE_DES_STOP,
TEXT("button"), TEXT("事件过滤"), BS_PUSHBUTTON,335,275,80,20, IDC_SAFE_DES_FILTER,
TEXT("button"), TEXT("清空事件"), BS_PUSHBUTTON,425,275,80,20, IDC_SAFE_DES_EMPTY,
}


BOOL CreateSafe(HWND hwndParent,HWND *hWndSafe)
{
HINSTANCE hInst=GetModuleHandle(NULL);
int index;
INITCOMMONCONTROLSEX icex;
icex.dwSize=sizeof(INITCOMMONCONTROLSEX);
icex.dwICC=ICC_LISTVIEW_CLASSES;
InitCommonControlsEx(&icex);

for(index=0;index<NUM_SAFE;index++)
{
hWndSafe[index]=CreateWindow(Safe[index].szClass,
Safe[index].szName,
WS_CHILD|WS_VISIBLE|Safe[index].iStyle,
Safe[index].ix,
Safe[index].iy,
Safe[index].icx,
Safe[index].icy,
hwndParent,
(HMENU)Safe[index].id,
hInst,
NULL);
}
return TRUE;
}

点击一个菜单创建这些控件,,可是点另一个菜单怎么能让这些没了呢,,试过
for(index;index<NUM_SAFE;index++)
{
if(hwndsafe[index]!=NULL)
showwindow(hwndsafe[index],SW_HIDE)
}
这样做根本没用
该怎么解决

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧