1. 程式人生 > >vc++如何建立視窗

vc++如何建立視窗

建立一個mfc工程,AppWizard可以用來增加和選擇一些特性

可以發現一共有五個類,每一個類都有一個基類,都是mfc基礎類庫中的類

例如將一個類拷貝一下,將CFrameWnd到msdn中查詢一下,MSDN(Microsoft Developer Network)是早期微軟在推廣Win32 程式設計以及開發工具時,專門為開發人員所提供的一個服務,是使用微軟技術開發軟體或應用程式時必定會參訪的地方,同時它也有提供訂閱的服務

 

例如cwinapp

 

 

理解mfc脈絡,每一種不同的視窗類

建立視窗:createwindow類

理清關係。 例如演示Cwind類如何與視窗聯絡起來的

 

 

class CWnd
{
public:
bool CreateEx(DWORD dwExStyle)
LPCTSTR lpClassName,
LPCTSTR lpWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HWND hMenu,
HINSTAMCE hInstance,
LPUOIO IpParan);
BOOL ShowWindow(int nCndShow);
BOOL UpdateWindow();
//定義一個控制代碼的成員變數
public:
HWND n_hWnd;

};
//完成三個函式,返回值 類名::作用於識別符號 ,
BOOL CWnd::CreateEx(DWORD dwExStyle)
LPCTSTR lpClassName,
LPCTSTR lpWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HWND hMenu,
HINSTAMCE hInstance,
LPUOIO IpParan);
//完成一個建立視窗的過程,利用win32提供的api函式成員變數保護
{
m_hWnd=::CreateWindowEx(dwExst,lpClassName,dwStyle,dwStyly,x,y,
nWidth,nHeight,hWndParent,HWenu,hInstance,Iparam);
//表示全域性函式可以加一個::
BOOL ShowWindow(int nCndShow);
BOOL UpdateWindow();
if(n_hWnd!=NULL)
return TRUE;
else
return FALSE;
}
bool CWnd::ShowWindow(int nCmdShow)
{
return ::ShowWindow(m_hWnd,nCndShow);// ::ShowWindow(m_hWnd,nCndShow);表示是一個全域性函式,是一個平臺sdk的函式,
//只要想表示sdk的,全域性的,都可以用::來表示,返回值也是bool型別
//當呼叫createEx函式時,表示函式已經傳過來了,可以直接返回
}

bool CWnd::UpdateWindow(int nCmdShow)
{
return ::UpdateWindow(m_hWnd);// ::ShowWindow(m_hWnd,nCndShow);表示是一個全域性函式,是一個平臺sdk的函式,
//只要想表示sdk的,全域性的,都可以用::來表示,返回值也是bool型別
//當呼叫createEx函式時,表示函式已經傳過來了,可以直接返回
}

 

bool CWnd::UpdateWindow(int nCmdShow)
{
return ::UpdateWindow(m_hWnd);// ::ShowWindow(m_hWnd,nCndShow);表示是一個全域性函式,是一個平臺sdk的函式,
//只要想表示sdk的,全域性的,都可以用::來表示,返回值也是bool型別
//當呼叫createEx函式時,表示函式已經傳過來了,可以直接返回
}
//可以貼上程式碼過來
int WINPI WinHain(
HINSTAMCE hInstance,
HINSTAMCE hPreVInstance,
LPSTR IpCmdLine,
int nCmdShow
)

{
WNDCLASS undels;
undels.cbWndExtra=0;
undels.cbClsExtra=0;
....
//註冊
RegisterClass(&wndcls);
//產生視窗,寬度,高度
CWnd wnd;
wnd.CreateEx(...);
//顯示視窗
wnd.ShowWindow(SW_SHOWHORHAL);
//更新視窗
wnd.UpdateWindow();
//迴圈。。。。
//儲存控制代碼
HWND hwnd;
hwnd=CreateWindowEx();
.....

 

}