vs08新建win32空白项目 属性设置

来源:互联网 发布:陈一发知乎 编辑:程序博客网 时间:2024/06/05 21:03


c/c++ 预处理器定义 WIN32;_DEBUG;_WINDOWS;UNICODE

链接器-输入-附加依赖库 odbc32.lib odbccp32.lib winmm.lib

链接器-系统 子系统选择windows

其实没有这么麻烦~

添加->新建项目->Visual C++-> Win32 项目->下一步->Windows 应用程序 (空项目)

之后,源文件->添加->新建项->C++文件->m.c

就可以写程序了,

至于依赖库 写程序的时候用到再加就行了~

window程序设计,消息处理模版

#include "windows.h"LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam);int WINAPI WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in_opt LPSTR lpCmdLine, __in int nShowCmd ){TCHAR szAppName[]=TEXT("testapp");TCHAR szWindowsName[]=TEXT("wndnew");HWND hwnd;MSG msg;WNDCLASS wndclass;wndclass.cbClsExtra=0;wndclass.cbWndExtra=0;wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);wndclass.hInstance=hInstance;wndclass.lpfnWndProc=WndProc;wndclass.lpszClassName=szAppName;wndclass.lpszMenuName=NULL;wndclass.style=CS_HREDRAW|CS_VREDRAW;//支持重画if (!RegisterClass(&wndclass)){MessageBox(NULL,szWindowsName,TEXT("error!"),MB_ICONERROR);return 1;}hwnd=CreateWindow(szAppName,szWindowsName,WS_OVERLAPPEDWINDOW,//带标题栏的窗体CW_USEDEFAULT,//初始位置CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);ShowWindow(hwnd,nShowCmd);UpdateWindow(hwnd);//wrong//while (GetMessage(&msg,hwnd,NULL,NULL))while (GetMessage(&msg,NULL,NULL,NULL)){TranslateMessage(&msg);DispatchMessage(&msg);}return 0;}LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam){switch (message){case WM_DESTROY:PostQuitMessage(0);}//wrong//DefWindowProc(hwnd,message,wparam,lparam);//return 0;return DefWindowProc(hwnd,message,wparam,lparam);}


再贴一段检验窗口重绘的代码吧,根据杨力祥老师视频第7节写的

LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam){static BOOL isChangCol=FALSE;HDC hdc;PAINTSTRUCT ps;RECT rec;HBRUSH hBrush;switch (message){case WM_DESTROY:PostQuitMessage(0);return 0;case WM_PAINT://hdc=BegainPaint(hwnd,&ps);hdc=BeginPaint(hwnd,&ps);hBrush=CreateSolidBrush(isChangCol?RGB(255,0,0):RGB(0,255,0));GetClientRect(hwnd,&rec);FillRect(hdc,&rec,hBrush);EndPaint(hwnd,&ps);DeleteObject(hBrush);isChangCol=!isChangCol;return 0;}//wrong//DefWindowProc(hwnd,message,wparam,lparam);//return 0;return DefWindowProc(hwnd,message,wparam,lparam);}

win7下主题要用windows经典才能看出遮挡效果……