📄 picturn.c
字号:
/***************************************************************************** 文件名:dispbmp.c* 功能:MiniGUI应用例子。* 使用LoadBitmapFromFile函数装载一个BMP文件,然后使用* FillBoxWithBitmap函数在主窗口上显示该图片。****************************************************************************//* 包含MiniGUI头文件 */#include <minigui/common.h>#include <minigui/minigui.h>#include <minigui/gdi.h>#include <minigui/window.h>#include <minigui/control.h>/* 主窗口起始位置及大小 */#define MWINDOW_LX 0 /* 窗口左边框的x值 */#define MWINDOW_TY 0 /* 窗口上边框的y值 */#define MWINDOW_RX 800 /* 窗口右边框的x值 */#define MWINDOW_BY 600 /* 窗口下边框的y值 */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; static int chang=0; HDC hdc; // 定义一个图形设备上下文对象,输出字符时需要。 switch(message) { case MSG_CREATE: if(LoadBitmapFromFile( HDC_SCREEN, // 设备上下文 &s_bmp, // BITMAP变量地址 "pic0.bmp") ) // 文件名 { printf("loading picture erro!!!\n"); return(-1);} break; case MSG_PAINT: hdc = BeginPaint(hWnd); // 获得设备hdc printf("painting picture start!!!\n"); FillBoxWithBitmap (hdc, 0, 0, 320, 240, &s_bmp); // 显示图片 printf("painting picture end!!!\n"); EndPaint(hWnd, hdc); // 释放设备hdc break; case MSG_CHAR: // 字符消息 UnloadBitmap (&s_bmp); chang++; if(chang>1) {chang=0;} if(chang==0) {LoadBitmapFromFile( HDC_SCREEN, &s_bmp, "pic0.bmp");} if(chang==1) {LoadBitmapFromFile( HDC_SCREEN, &s_bmp, "pic1.bmp");} UpdateWindow(hWnd, TRUE); 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;#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 <minigui/dti.c>#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -