1、在 Win32 SDK 中使用 Lu 模块化编译运行库 MLu(Windows XP 系统,使用 VC 2008 演示)(欢迎访问:http:/ )1、启动 VS 2008(VC+ 2008) ,点击红色圈出部分创建项目。2、创建 Win32 项目,名称为 TestMLu,点击“确定” 。3、点击“下一步” 。4、选择“空项目” ,点击“完成” 。5、工程生成后如下图所示。6、在进行下一步之前,先来看看我们要设计的主程序界面,我们将先实现这个界面。7、实现主程序界面的代码:这些代码没有使用 Lu,仅仅实现主程序界面头文件:TestMLu.h(文件创建方法:先创建一个文本文件,输入以下内容并保存
2、,然后更改文件名为 TestMLu.h)#define IDM_cal_com 10#define IDM_cal_cal 11#define IDM_cal_comcal 12#define IDE_EditCode 30#define IDE_EditOut 31(注意:复制到文件中后,最后一条语句后面,请加一个回车,否则容易出现编译错误。下同。 )资源文件:TestMLu.rc(文件创建方法:先创建一个文本文件,输入以下内容并保存,然后更改文件名为 TestMLu. rc)#include “windows.h“#include “TestMLu.h“/ MenumainMenu MEN
3、U DISCARDABLE POPUP “计算 ( /实例句柄HWND hwndEditCode,hwndEditOut; /代码窗口和输出窗口LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); /窗口函数说明/ Windows 应用程序入口int WINAPI WinMain(HINSTANCE hhInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow)HWND hWnd;MSG Msg ;WNDCLASS wndclass ;wchar_t lpszClassName=L“c
4、lassTestMLu“;/窗口类名wchar_t lpszTitle= L“TestMLu“; /窗口标题名hInstance=hhInstance; /记住实例句柄/窗口类的定义wndclass.style = 0; /窗口类型wndclass.lpfnWndProc = WndProc ; /窗口处理函数为 WndProcwndclass.cbClsExtra = 0 ; /窗口类无扩展wndclass.cbWndExtra = 0 ; /窗口实例无扩展wndclass.hInstance = hInstance ; /当前实例句柄wndclass.hIcon = LoadIcon( N
5、ULL, IDI_APPLICATION) ;/窗口的最小化图标为缺省图标wndclass.hCursor = LoadCursor( NULL, IDC_ARROW) ;/窗口采用箭头光标wndclass.hbrBackground = (HBRUSH)GetStockObject( WHITE_BRUSH) ;/窗口背景为白色wndclass.lpszMenuName = L“mainMenu“ ; /窗口菜单wndclass.lpszClassName = lpszClassName ;/窗口类名/窗口类注册if( !RegisterClass( MessageBox(GetFocus(
6、),L“注册失败!“,L“TestMLu“,MB_OK);return 0;/创建窗口hWnd=CreateWindow(lpszClassName, /窗口类名lpszTitle, /窗口实例的标题名WS_OVERLAPPEDWINDOW,/窗口的风格CW_USEDEFAULT,CW_USEDEFAULT, /窗口左上角坐标为缺省值CW_USEDEFAULT,CW_USEDEFAULT, /窗口的高和宽为缺省值NULL, /此窗口无父窗口NULL, /此窗口无主菜单hInstance, /创建此窗口的应用程序的当前句柄NULL) ; /不使用该值/显示窗口ShowWindow( hWnd,
7、SW_SHOWNORMAL) ;/绘制用户区UpdateWindow(hWnd);/消息循环 while( GetMessage(DispatchMessage( if(!UnregisterClass(lpszClassName,hInstance)/ Are We Able To Unregister ClassMessageBox(NULL,L“Could Not Unregister Class.“,L“TestMLu“,MB_OK | MB_ICONINFORMATION);return Msg.wParam; /消息循环结束即程序终止时将信息返回系统/窗口函数LRESULT CAL
8、LBACK WndProc(HWND hWnd,UINT Message,WPARAM wParam, LPARAM lParam)switch(Message)case WM_CREATE:hwndEditCode=CreateWindow(L“EDIT“,NULL, /创建代码编辑框;WS_CHILD|WS_VISIBLE|WS_HSCROLL|WS_VSCROLL|WS_BORDER|ES_LEFT|ES_MULTILINE|ES_AUTOHSCROLL|ES_AUTOVSCROLL,0,0,LOWORD(lParam),HIWORD(lParam/2),hWnd,(HMENU)IDE_
9、EditCode,hInstance,NULL);hwndEditOut=CreateWindow(L“EDIT“,NULL, /创建输出编辑框;WS_CHILD|WS_VISIBLE|WS_HSCROLL|WS_VSCROLL|WS_BORDER|ES_LEFT|ES_MULTILINE|ES_AUTOHSCROLL|ES_AUTOVSCROLL,0,HIWORD(lParam/2+2),LOWORD(lParam),HIWORD(lParam/2-2),hWnd,(HMENU)IDE_EditOut,hInstance,NULL);SetWindowText(hwndEditCode,L“
10、/这里是代码窗口,请将 Lu 代码写在下面rn“);SetFocus(hwndEditCode);break;case WM_SIZE:MoveWindow(hwndEditCode,0,0,LOWORD(lParam),HIWORD(lParam/2),true);MoveWindow(hwndEditOut,0,HIWORD(lParam/2+2),LOWORD(lParam),HIWORD(lParam/2),true);UpdateWindow(hWnd);break;case WM_COMMAND:switch(LOWORD(wParam)case IDM_cal_com:break
11、;case IDM_cal_cal:break;case IDM_cal_comcal:break;break;case WM_DESTROY:PostQuitMessage(0); /调用 PostQuitMessage 发出 WM_QUIT 消息break;default: /默认时采用系统消息默认处理函数return DefWindowProc(hWnd,Message,wParam,lParam);return 0;8、将 TestMLu.h、TestMLu.rc 和 TestMLu.cpp 三个文件放到文件夹“D:lulu32TestMLuTestMLu”。9、返回 VC,点击下图中红色圈出部分“项目-添加现有项” 。10、添加 TestMLu.h、TestMLu.rc 和 TestMLu.cpp 三个文件到工程中。11、新的工程如下图,点击下图中红色圈出部分“生成-生成解决方案” 。12、生成 成功。
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。