DispBmp.c
资源名称:GPRS_work.rar [点击查看]
上传用户:sdaoma
上传日期:2013-08-07
资源大小:3838k
文件大小:4k
源码类别:
GPS编程
开发平台:
C/C++
- /****************************************************************************
- * 文件名:DispBmp.C
- * 功能:MiniGUI应用例子。
- * 使用LoadBitmapFromMem装载一个BMP文件数据(内建资源),然后使用
- * FillBoxWithBitmap在主窗口上显示该图片。
- * 说明:使用MiniGUI for uC/OS-II,使用ADS 1.2编译器。
- ****************************************************************************/
- /* 包含MiniGUI的配置头文件(编译配置选项) */
- #include "MiniGUI_config.h"
- /* 包含MiniGUI头文件 */
- #include "common.h"
- #include "minigui.h"
- #include "gdi.h"
- #include "window.h"
- #include "control.h"
- /* 主窗口起始位置及大小 */
- #define MWINDOW_LX 20 /* 窗口左边框的x值 */
- #define MWINDOW_TY 40 /* 窗口上边框的y值 */
- #define MWINDOW_RX 220 /* 窗口右边框的x值 */
- #define MWINDOW_BY 280 /* 窗口下边框的y值 */
- /* 声明bmp文件大小及数据指针 */
- extern const unsigned int sz_bmp1;
- extern const unsigned char bmp1_data[];
- HWND hMainWnd; // 主窗口句柄
- /****************************************************************************
- * 名称:WinProc()
- * 功能:主窗口过程函数。
- * 处理MSG_PAINT消息,在窗口中显示BMP图片。
- * 入口参数:hWnd 窗口句柄
- * message 消息
- * wParam 消息附加参数1(对于不同的消息,有不同的用途)
- * lParam 消息附加参数2(对于不同的消息,有不同的用途)
- * 出口参数:消息已处理则返回0。
- ****************************************************************************/
- static int WinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
- { static BITMAP s_bmp;
- HDC hdc; // 定义一个图形设备上下文对象,输出字符时需要。
- switch(message)
- { case MSG_CREATE:
- if(LoadBitmapFromMem( HDC_SCREEN, // 设备上下文
- &s_bmp, // BITMAP变量地址
- bmp1_data, // 图形文件数据
- sz_bmp1, // 文件大小
- "bmp") ) // 文件类型
- { return(-1);
- }
- break;
- case MSG_PAINT:
- hdc = BeginPaint(hWnd); // 获得设备hdc
- FillBoxWithBitmap (hdc, 7, 10, 180, 200, &s_bmp); // 显示图片
- EndPaint(hWnd, hdc); // 释放设备hdc
- break;
- case MSG_CLOSE:
- UnloadBitmap (&s_bmp);
- DestroyMainWindow(hWnd); // 销毁主窗口
- PostQuitMessage(hWnd); // 发送MSG_QUIT消息,通知"消息循环"结束
- break;
- default:
- return(DefaultMainWinProc(hWnd, message, wParam, lParam));
- }
- return(0);
- }
- /****************************************************************************
- * 名称:InitMainWindow()
- * 功能:建立主窗口。
- * 入口参数:无
- * 出口参数:建立成功返回1,否则返回0。
- ****************************************************************************/
- int InitMainWindow(void)
- { MAINWINCREATE window_info;
- window_info.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION;
- window_info.dwExStyle = WS_EX_NONE;
- window_info.spCaption = "MiniGUI";
- window_info.hMenu = 0;
- window_info.hCursor = GetSystemCursor(0);
- window_info.hIcon = 0;
- window_info.MainWindowProc = WinProc;
- window_info.lx = MWINDOW_LX;
- window_info.ty = MWINDOW_TY;
- window_info.rx = MWINDOW_RX;
- window_info.by = MWINDOW_BY;
- window_info.iBkColor = COLOR_lightwhite;
- window_info.dwAddData = 0;
- window_info.hHosting = HWND_DESKTOP;
- hMainWnd = CreateMainWindow(&window_info);
- if(hMainWnd == HWND_INVALID) return(0);
- else return(1);
- }
- /****************************************************************************
- * 名称:MiniGUIMain()
- * 功能:MiniGUI程序入口点。
- * 入口参数:argc 参数个数
- * argv 参数字符串指针
- * 出口参数:返回0。
- ****************************************************************************/
- int MiniGUIMain(int argc, const char *argv[])
- { MSG Msg;
- /* 虽然MiniGUI for uC/OS-II不支持"MiniGUI-Lite模式",
- 但为了保持代码的移植性,此段不要删除
- */
- #ifdef _LITE_VERSION
- SetDesktopRect(0,0, 800,600);
- #endif
- InitMainWindow(); // 建立主窗口
- ShowWindow(hMainWnd, SW_SHOWNORMAL); // 显示主窗口
- /* 消息循环 */
- while(GetMessage(&Msg, hMainWnd))
- { TranslateMessage(&Msg);
- DispatchMessage(&Msg);
- }
- MainWindowThreadCleanup(hMainWnd);
- return(0);
- }
- /* 定义桌面接口函数 */
- #ifndef _LITE_VERSION
- #include "dti.c"
- #endif