未出现5个按纽

mengde007 2008-11-02 09:14:15
#ifndef CMAIN_H_
#define CMAIN_H_
#include"afxwin.h"
class CMyApp:public CWinApp
{
BOOL InitInstance();
};
class CMainWindow:public CWnd
{
public:
CMainWindow();
protected:
HCURSOR m_hCursorArrow;
HWND m_hWnd;
protected:
virtual void PostNcDestroy();
virtual BOOL OnCommand(WPARAM wParam,LPARAM lParam);
afx_msg BOOL OnCreate(LPCREATESTRUCT lpCreateStruct);
DECLARE_MESSAGE_MAP()
};
#endif
#include"CMain.h"
#include<windows.h>
#include"afxwin.h"
#define IDC_BUTTON 10
#define IDC_RADIO 11
#define IDC_CHECKBOX 12
//#define IDC_STATIC 13
#define IDC_EDITTEXT 14
CMyApp theApp;
BOOL CMyApp::InitInstance()
{
m_pMainWnd=new CMainWindow();
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
};
BEGIN_MESSAGE_MAP(CMainWindow,CWnd)
ON_WM_CREATE()
END_MESSAGE_MAP()
CMainWindow::CMainWindow()
{
m_hWnd=NULL;
m_hCursorArrow=AfxGetApp()->LoadStandardCursor(IDC_ARROW);
LPCTSTR lpszClassName=AfxRegisterWndClass(0,NULL,(HBRUSH)(COLOR_3DFACE+1),
AfxGetApp()->LoadIcon(IDI_APPLICATION));
CreateEx(0,lpszClassName,"窗口",
WS_OVERLAPPED|WS_SYSMENU|WS_CAPTION|WS_MINIMIZEBOX,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL);
}
void CMainWindow::PostNcDestroy()
{
delete this;
}
BOOL CMainWindow::OnCommand(WPARAM wParam,LPARAM lParam)
{
switch(LOWORD(wParam))
{
case IDC_BUTTON:
::MessageBox(m_hWnd,"大家好","button",MB_OK);
break;
case IDC_RADIO:
{
BOOL bChecked=::IsDlgButtonChecked(m_hWnd,IDC_RADIO);
::EnableWindow(::GetDlgItem(m_hWnd,IDC_BUTTON),bChecked);
::CheckDlgButton(m_hWnd,IDC_RADIO,!bChecked);
break;
}
case IDC_EDITTEXT:
{
if(HIWORD(wParam)==EN_CHANGE)
{
char sz[256];
::GetWindowText(::GetDlgItem(m_hWnd,IDC_EDITTEXT),sz,256);
::SetWindowText(::GetDlgItem(m_hWnd,IDC_STATIC),sz);
}
break;
}
}
return 0;
}
BOOL CMainWindow::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
::CreateWindowEx(0,"button","pushdown",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
50,30,110,30,m_hWnd,(HMENU)IDC_BUTTON,AfxGetApp()->m_hInstance,NULL);
::CreateWindowEx(0,"button","radiobutton",WS_CHILD|WS_VISIBLE|BS_RADIOBUTTON,
50,70,110,30,m_hWnd,(HMENU)IDC_RADIO,AfxGetApp()->m_hInstance,NULL);
::CreateWindowEx(0,"button","check box",WS_CHILD|WS_VISIBLE|BS_AUTOCHECKBOX,
50,110,110,30,m_hWnd,(HMENU)IDC_CHECKBOX,AfxGetApp()->m_hInstance,NULL);
::CreateWindowEx(0,"static","static edit",WS_CHILD|WS_VISIBLE|SS_SUNKEN,
50,150,150,60,m_hWnd,(HMENU)IDC_STATIC,AfxGetApp()->m_hInstance,NULL);
::CreateWindowEx(0,"edit","edit text",WS_CHILD|WS_VISIBLE|WS_BORDER|ES_MULTILINE,
50,220,150,60,m_hWnd,(HMENU)IDC_EDITTEXT,AfxGetApp()->m_hInstance,NULL);
return TRUE;
}

各位大哥帮帮忙,这样类似问题经常出现,我晕了····!!
...全文
71 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengde007 2008-11-02
  • 打赏
  • 举报
回复
可是我的意思是先创建了一个主窗口,而后创建了五个控件,怎么会出错呢?
xsc2001 2008-11-02
  • 打赏
  • 举报
回复
你在MainFrame里创建了按钮肯定是显示不出来。因为它的OnCreate先调用,而后才调用创建视图,所以视图的Z-Order在各按钮之上,所以被视图覆盖了,你可以将创建按钮的代码放到视图类的OnInitUpdate函数里。
mengde007 2008-11-02
  • 打赏
  • 举报
回复
兄弟,说准确点,被谁覆盖了,急啊!!
tiankong1399 2008-11-02
  • 打赏
  • 举报
回复
五个按钮??三个吧,,如果没有,你看有没有一些控件被其他控件覆盖了,控件的创建显示位置调整下试试。

15,979

社区成员

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

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