道。道。道

安全特性不等于安全的特性

   :: 首页 :: 联系 :: 聚合  :: 管理

常用链接

搜索

  •  

最新评论

今天在VC8.0中使用 GDI+,  但有很多编译错误,向 VC8.0中不支持返回默认int 这类错误在VC6.0中可以编译,起初被这类错误搞的直迷糊,后来将 stdafx.h 中的宏定义
//#define WIN32_LEAN_AND_MEAN 
注释掉就可以正常编译了。

  1 // win32app.cpp : 定义应用程序的入口点。
  2 //
  3 
  4 #include "stdafx.h"
  5 #include "win32app.h"
  6 #include <gdiplus.h>
  7 
  8 using namespace Gdiplus;
  9 
 10 #define MAX_LOADSTRING 100
 11 
 12 // 全局变量:
 13 HINSTANCE hInst;                                // 当前实例
 14 TCHAR szTitle[MAX_LOADSTRING];                    // 标题栏文本
 15 TCHAR szWindowClass[MAX_LOADSTRING];            // 主窗口类名
 16 
 17 // 此代码模块中包含的函数的前向声明:
 18 ATOM                MyRegisterClass(HINSTANCE hInstance);
 19 BOOL                InitInstance(HINSTANCE, int);
 20 LRESULT CALLBACK    WndProc(HWND, UINT, WPARAM, LPARAM);
 21 INT_PTR CALLBACK    About(HWND, UINT, WPARAM, LPARAM);
 22 
 23 int APIENTRY _tWinMain(HINSTANCE hInstance,
 24                      HINSTANCE hPrevInstance,
 25                      LPTSTR    lpCmdLine,
 26                      int       nCmdShow)
 27 {
 28     //UNREFERENCED_PARAMETER(hPrevInstance);
 29     //UNREFERENCED_PARAMETER(lpCmdLine);
 30 
 31      // TODO: 在此放置代码。
 32     GdiplusStartupInput gdiplusStartupInput;
 33     ULONG_PTR gdiplusToken;
 34     GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
 35 
 36     MSG msg;
 37     HACCEL hAccelTable;
 38 
 39     // 初始化全局字符串
 40     LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
 41     LoadString(hInstance, IDC_WIN32APP, szWindowClass, MAX_LOADSTRING);
 42     MyRegisterClass(hInstance);
 43 
 44     // 执行应用程序初始化:
 45     if (!InitInstance (hInstance, nCmdShow))
 46     {
 47         return FALSE;
 48     }
 49 
 50     hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WIN32APP));
 51 
 52     // 主消息循环:
 53     while (GetMessage(&msg, NULL, 00))
 54     {
 55         if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
 56         {
 57             TranslateMessage(&msg);
 58             DispatchMessage(&msg);
 59         }
 60     }
 61 
 62     GdiplusShutdown(gdiplusToken);
 63 
 64     return (int) msg.wParam;
 65 }
 66 
 67 
 68 
 69 //
 70 //  函数: MyRegisterClass()
 71 //
 72 //  目的: 注册窗口类。
 73 //
 74 //  注释:
 75 //
 76 //    仅当希望
 77 //    此代码与添加到 Windows 95 中的“RegisterClassEx”
 78 //    函数之前的 Win32 系统兼容时,才需要此函数及其用法。调用此函数十分重要,
 79 //    这样应用程序就可以获得关联的
 80 //    “格式正确的”小图标。
 81 //
 82 ATOM MyRegisterClass(HINSTANCE hInstance)
 83 {
 84     WNDCLASSEX wcex;
 85 
 86     wcex.cbSize = sizeof(WNDCLASSEX);
 87 
 88     wcex.style            = CS_HREDRAW | CS_VREDRAW;
 89     wcex.lpfnWndProc    = WndProc;
 90     wcex.cbClsExtra        = 0;
 91     wcex.cbWndExtra        = 0;
 92     wcex.hInstance        = hInstance;
 93     wcex.hIcon            = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_WIN32APP));
 94     wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
 95     wcex.hbrBackground    = (HBRUSH)(COLOR_WINDOW+1);
 96     wcex.lpszMenuName    = MAKEINTRESOURCE(IDC_WIN32APP);
 97     wcex.lpszClassName    = szWindowClass;
 98     wcex.hIconSm        = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
 99 
100     return RegisterClassEx(&wcex);
101 }
102 
103 //
104 //   函数: InitInstance(HINSTANCE, int)
105 //
106 //   目的: 保存实例句柄并创建主窗口
107 //
108 //   注释:
109 //
110 //        在此函数中,我们在全局变量中保存实例句柄并
111 //        创建和显示主程序窗口。
112 //
113 BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
114 {
115    HWND hWnd;
116 
117    hInst = hInstance; // 将实例句柄存储在全局变量中
118 
119    hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
120       CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
121 
122    if (!hWnd)
123    {
124       return FALSE;
125    }
126 
127    ShowWindow(hWnd, nCmdShow);
128    UpdateWindow(hWnd);
129 
130    return TRUE;
131 }
132 
133 void OnPaint(HDC hdc)
134 {
135    /*
136    Graphics graphics(hdc);
137    Pen      pen(Color(255, 0, 0, 255));
138    graphics.DrawLine(&pen, 0, 0, 200, 100);
139    */
140    Graphics    graphics(hdc);
141    SolidBrush  brush(Color(25500255));
142    FontFamily  fontFamily(L"Times New Roman");
143    Font        font(&fontFamily, 24, FontStyleRegular, UnitPixel);
144    PointF      pointF(10.0f20.0f);
145    graphics.DrawString(L"Hello World!"-1&font, pointF, &brush);
146 }
147 //
148 //  函数: WndProc(HWND, UINT, WPARAM, LPARAM)
149 //
150 //  目的: 处理主窗口的消息。
151 //
152 //  WM_COMMAND    - 处理应用程序菜单
153 //  WM_PAINT    - 绘制主窗口
154 //  WM_DESTROY    - 发送退出消息并返回
155 //
156 //
157 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
158 {
159     int wmId, wmEvent;
160     PAINTSTRUCT ps;
161     HDC hdc;
162 
163     switch (message)
164     {
165     case WM_COMMAND:
166         wmId    = LOWORD(wParam);
167         wmEvent = HIWORD(wParam);
168         // 分析菜单选择:
169         switch (wmId)
170         {
171         case IDM_ABOUT:
172             DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
173             break;
174         case IDM_EXIT:
175             DestroyWindow(hWnd);
176             break;
177         default:
178             return DefWindowProc(hWnd, message, wParam, lParam);
179         }
180         break;
181     case WM_PAINT:
182         hdc = BeginPaint(hWnd, &ps);
183         OnPaint(hdc);
184         EndPaint(hWnd, &ps);
185         break;
186     case WM_DESTROY:
187         PostQuitMessage(0);
188         break;
189     default:
190         return DefWindowProc(hWnd, message, wParam, lParam);
191     }
192     return 0;
193 }
194 
195 // “关于”框的消息处理程序。
196 INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
197 {
198     UNREFERENCED_PARAMETER(lParam);
199     switch (message)
200     {
201     case WM_INITDIALOG:
202         return (INT_PTR)TRUE;
203 
204     case WM_COMMAND:
205         if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
206         {
207             EndDialog(hDlg, LOWORD(wParam));
208             return (INT_PTR)TRUE;
209         }
210         break;
211     }
212     return (INT_PTR)FALSE;
213 }
214 

posted on 2006-11-05 21:50 独孤九剑 阅读(719) 评论(0)  编辑 收藏 引用 所属分类: Win32