先要在vc中创建工程,以及源文件。
step1:
step2:
step3:
然后就可以在WinMain文件中写入win32的主函数,以及窗口过程函数,完成简单的windows编程。
基于windows的编程,变量以及宏的定义很多,非常复杂,但MSDN里基本有所以相关的内容。
rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"> rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_editdata.mso">
step1:

step2:

step3:

然后就可以在WinMain文件中写入win32的主函数,以及窗口过程函数,完成简单的windows编程。
- #include <windows.h>
- #include <stdio.h>
- //定义窗口过程函数
- LRESULT CALLBACK WinProc( //typedef LONG LRESULT
- HWND hwnd, //窗口句柄
- UINT uMsg, //消息ID
- WPARAM wParam, //第一个消息参数 typedef UINT WPARAM
- LPARAM lParam //第二个消息参数 typedef LONG LPARAM
- );
- //win 主函数
- int WINAPI WinMain(HINSTANCE hInstance, //当前实例句柄
- HINSTANCE hPrevInstance, //前一实例句柄
- LPSTR lpCmdLine, //命令行
- int nCmdShow) //显示状态
- {
- //创建一个窗口类,并初始化
- WNDCLASS wndcls;
- wndcls.cbClsExtra=0; //分配额外空间
- wndcls.cbWndExtra=0;
- wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
- // wndcls.hCursor=LoadIcon(NULL,IDI_ERROR);
- wndcls.hCursor=NULL;
- wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
- wndcls.hInstance=hInstance;
- wndcls.lpfnWndProc=WinProc;
- wndcls.lpszClassName="Simplest";
- wndcls.lpszMenuName=NULL;
- wndcls.style=CS_HREDRAW |CS_VREDRAW;
- //初始完后,向系统注册该对象,以后才能创建
- RegisterClass(&wndcls);
- // 创建窗口,并定义一个窗口句柄来指向该窗口
- HWND hwnd;
- hwnd=CreateWindow("Simplest","J_F",WS_OVERLAPPEDWINDOW,0,0,600,600,NULL,NULL,hInstance,NULL);
- //显示以及刷新窗口
- ShowWindow(hwnd,SW_SHOWNORMAL);
- UpdateWindow(hwnd);
- //定义消息结构体,开始接受消息
- MSG msg;
- while(GetMessage(&msg,NULL,0,0))//MS_QUIT =0
- {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
- return msg.wParam;
- }
- LRESULT CALLBACK WinProc( //typedef LONG LRESULT
- HWND hwnd, //窗口句柄
- UINT uMsg, //消息ID
- WPARAM wParam, //第一个消息参数 typedef UINT WPARAM
- LPARAM lParam //第二个消息参数 typedef LONG LPARAM
- )
- {
- switch(uMsg)
- {
- case WM_CHAR:
- {
- char ch[20];
- sprintf(ch,"char code is %d",wParam);
- MessageBox(hwnd,ch,"char",0);
- break;
- }
- case WM_LBUTTONDOWN:
- MessageBox(hwnd,"mouse clicked","message",0);
- HDC hdc;
- hdc=GetDC(hwnd);
- TextOut(hdc,0,50,"J_F",strlen("J_F"));
- break;
- case WM_PAINT:
- HDC Hdc;
- PAINTSTRUCT ps;
- Hdc=BeginPaint(hwnd,&ps);
- TextOut(Hdc,0,0,"J_Factory",strlen("J_Factory"));
- EndPaint(hwnd,&ps);
- break;
- case WM_CLOSE:
- if(IDYES==MessageBox(hwnd,"is true to close","message",MB_YESNO) )
- {
- DestroyWindow(hwnd);
- }
- break;
- ///少了这一句,进程不会结束
- case WM_DESTROY:
- PostQuitMessage(0);
- break;
- default:
- return DefWindowProc(hwnd,uMsg,wParam,lParam);
- }
- return 0;
- }
基于windows的编程,变量以及宏的定义很多,非常复杂,但MSDN里基本有所以相关的内容。
rel="File-List" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml"> rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5CADMINI%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_editdata.mso">