Windows SDK 创建窗体

VC++ 6.0 调试通过。

提供给想了解Windows窗体创建机制和讨厌MFC的兄弟们。

从一个支持文件拖拽的例子抠出来的代码,代码简单易懂。

有空再加注释吧。了解Windows机制的淫应该很容易明白代码在干啥。比如什么是窗体类,窗体实力,消息处理等。创建窗体程序的步骤等

 

#include "windows.h"int WINAPI WinMain( HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow );BOOL InitApplication( HINSTANCE hInstance );BOOL InitInstance( HINSTANCE hInstance,int nCmdShow );LRESULT CALLBACK MainWndProc( HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam );int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow ){ MSG msg; if(!InitApplication(hInstance)) return FALSE; if(!InitInstance(hInstance,nCmdShow)) return FALSE; while( GetMessage( &msg,NULL,0,0 ) ) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam;}BOOL InitApplication(HINSTANCE hInstance){ WNDCLASS wc; wc.style = 0; wc.lpfnWndProc = (WNDPROC)MainWndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon(NULL,IDI_ASTERISK); wc.hCursor = LoadCursor(NULL,IDC_ARROW); wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wc.lpszMenuName = NULL; wc.lpszClassName = "SDK_FORM_CLASS"; return RegisterClass(&wc);}BOOL InitInstance( HINSTANCE hInstance,int nCmdShow ){ HWND hWnd; hWnd = CreateWindowEx( 0, "SDK_FORM_CLASS", "SDK_FORM_DEMO", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL ); if(!hWnd) return FALSE; ShowWindow(hWnd,nCmdShow); UpdateWindow(hWnd); return TRUE;}LRESULT CALLBACK MainWndProc( HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam ){ switch( uMsg ) { case WM_DESTROY: PostQuitMessage( 0 ); break; default: return DefWindowProc( hWnd,uMsg,wParam,lParam ); } return 0;}

你可能感兴趣的:(windows,null,Class,mfc,callback,winapi)