能写一个简单的minigui列表的例子吗?
时间: 2023-08-02 15:06:56 浏览: 19
当然可以,以下是一个简单的 MiniGUI 列表框的例子:
```c
#include <stdio.h>
#include <stdlib.h>
#include "minigui.h"
#define IDC_LISTBOX 100
static const char* items[] = {
"item 1",
"item 2",
"item 3",
"item 4",
"item 5"
};
static int listbox_proc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
switch (message) {
case MSG_INITDIALOG:
{
int i;
HWND listbox = GetDlgItem(hWnd, IDC_LISTBOX);
for (i = 0; i < sizeof(items) / sizeof(items[0]); i++) {
SendMessage(listbox, LB_ADDSTRING, 0, (LPARAM)items[i]);
}
SendMessage(listbox, LB_SETCURSEL, 0, 0);
break;
}
case MSG_COMMAND:
switch (wParam) {
case IDCANCEL:
EndDialog(hWnd, wParam);
break;
default:
break;
}
break;
default:
break;
}
return DefaultDialogProc(hWnd, message, wParam, lParam);
}
int MiniGUIMain(int argc, const char* argv[])
{
MSG Msg;
HWND hMainWnd;
MAINWINCREATE CreateInfo;
CreateInfo.dwStyle = WS_VISIBLE | WS_CAPTION | WS_MINIMIZEBOX;
CreateInfo.dwExStyle = WS_EX_NONE;
CreateInfo.spCaption = "MiniGUI Listbox Sample";
CreateInfo.hMenu = 0;
CreateInfo.hCursor = GetSystemCursor(0);
CreateInfo.hIcon = 0;
CreateInfo.MainWindowProc = listbox_proc;
CreateInfo.lx = 0;
CreateInfo.ty = 0;
CreateInfo.rx = 320;
CreateInfo.by = 240;
CreateInfo.iBkColor = COLOR_lightwhite;
CreateInfo.dwAddData = 0;
CreateInfo.hHosting = HWND_DESKTOP;
hMainWnd = CreateMainWindow(&CreateInfo);
if (hMainWnd == HWND_INVALID) {
return -1;
}
while (GetMessage(&Msg, hMainWnd)) {
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
MainWindowThreadCleanup(hMainWnd);
return 0;
}
```
这是一个基本的列表框示例,它创建了一个包含 5 个字符串选项的列表框,并在对话框初始化时将它们添加到列表框中。您可以通过单击列表框中的选项来选择不同的选项。
相关推荐










