VS2012_win32application_WinMain_创建窗口
2015-12-10 23:27
323 查看
1.创建项目
创建项目->win32->win32项目(win32application)->填写命名和存放位置->下一步->选择“空项目”->完成
2.创建.cpp
在解决方案资源管理器的源文件右键->添加新建项->c++文件(.cpp)->填写名称->添加
3.配置
项目->属性->配置属性->常规->字符集:使用多字节字符集->确定
3.程序
5.详解
创建项目->win32->win32项目(win32application)->填写命名和存放位置->下一步->选择“空项目”->完成
2.创建.cpp
在解决方案资源管理器的源文件右键->添加新建项->c++文件(.cpp)->填写名称->添加
3.配置
项目->属性->配置属性->常规->字符集:使用多字节字符集->确定
3.程序
#include <windows.h> #include <stdio.h> LRESULT CALLBACK WinSunProc( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter LPARAM lParam // second message parameter ); int WINAPI WinMain( HINSTANCE hInstance, // handle to current instance HINSTANCE hPrevInstance, // handle to previous instance LPSTR lpCmdLine, // command line int nCmdShow // show state ) { WNDCLASS wndcls; wndcls.cbClsExtra=0; wndcls.cbWndExtra=0; wndcls.hbrBackground=(HBRUSH)GetStockObject(LTGRAY_BRUSH); wndcls.hCursor=LoadCursor(NULL,IDC_IBEAM); wndcls.hIcon=LoadIcon(NULL,IDI_ERROR); wndcls.hInstance=hInstance; wndcls.lpfnWndProc=WinSunProc; wndcls.lpszClassName="WinMainvs2012"; wndcls.lpszMenuName=NULL; wndcls.style=CS_HREDRAW | CS_VREDRAW; RegisterClass(&wndcls); HWND hwnd; hwnd=CreateWindow("WinMainvs2012","Hello!",WS_OVERLAPPEDWINDOW, 0,0,600,400,NULL,NULL,hInstance,NULL); ShowWindow(hwnd,SW_SHOWNORMAL); UpdateWindow(hwnd); MSG msg; while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return 0; } LRESULT CALLBACK WinSunProc( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter LPARAM lParam // second message parameter ) { switch(uMsg) { case WM_CHAR: char szChar[20]; sprintf(szChar,"char is %d",wParam); MessageBox(hwnd,szChar,"WinMain",0); break; case WM_LBUTTONDOWN: MessageBox(hwnd,"mouse clicked","WinMain",0); HDC hdc; hdc=GetDC(hwnd); TextOut(hdc,0,50,"计算机",strlen("计算机")); ReleaseDC(hwnd,hdc); break; case WM_PAINT: HDC hDC; PAINTSTRUCT ps; hDC=BeginPaint(hwnd,&ps); TextOut(hDC,0,0,"vs2012",strlen("vs2012")); EndPaint(hwnd,&ps); break; case WM_CLOSE: if(IDYES==MessageBox(hwnd,"是否真的结束?","WinMain",MB_YESNO)) { DestroyWindow(hwnd); } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,uMsg,wParam,lParam); } return 0; }
5.详解
相关文章推荐
- Android之如何实现通讯录的搜索并且让匹配到的数据变颜色
- 固定管线shader以及unity旋转四元数
- swift入门一:设置window
- unity3d中的旋转函数之Quaternion.Slerp
- android5.0自带兼容控件
- Android RecyclerView+CardView实现瀑布流效果
- android5.0自带兼容控件__SwipeRefreshLayout
- Unable to locate appropriate constructor on class [hibernatePojo.ShareResource]
- Android Graphics.drawable之—TransitionDrawable学习
- 安卓APP架构[译]
- error configuring application listener of class org.springframework.web.context.ContextLoaderListene
- android studio上使用butter Knife
- iOS 后台定位
- iOS9的ATS(App Transport Security)
- iOS 8 自动布局sizeclass和autolayout的基本使用
- 06.iOS自动检测更新
- Android
- 蓝懿iOS 技术内容和心得 12.10
- Android仿QQ长按删除弹出框
- Android学习笔记——Android PullToRefresh (ListView,GridView 下拉刷新) 使用介绍