MiniGUI 自定义控件(一)
2015-07-26 20:06
295 查看
#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/control.h>
#define IDC_MYBUTTON 100
#define IDC_MYBUTTON2 110
int (*old_button_proc) (hWnd, message, wParam, lParam);
static int MybuttonWindowProc (HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
int temp;
temp = (*old_button_proc) (hWnd, message, wParam, lParam);
switch(message)
{
case MSG_CREATE:
{
SetWindowBkColor(hWnd, COLOR_red);
}
break;
case MSG_SETFOCUS:{
SetWindowBkColor(hWnd, COLOR_red);
}break;
case MSG_KILLFOCUS:
{
SetWindowBkColor(hWnd, COLOR_darkgray);
}break;
}
return(temp);
}
//注册自定义控件
BOOL RegisterMybutton (void)
{
WNDCLASS WndClass;
WndClass.spClassName = CTRL_BUTTON;
GetWindowClassInfo(&WndClass);
old_button_proc = WndClass.WinProc;
WndClass.spClassName = "mybutton";
WndClass.dwStyle = 0;
WndClass.dwExStyle = 0;
WndClass.hCursor = GetSystemCursor(0);
WndClass.iBkColor = PIXEL_lightgray;
WndClass.WinProc = MybuttonWindowProc;
return RegisterWindowClass (&WndClass);
}
/* main windoww proc */
static int CaptureWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
switch (message) {
case MSG_CREATE:
RegisterMybutton();//使用前,注册自定义控件
//创建自定义按钮控件
CreateWindow ("mybutton", "", WS_VISIBLE | WS_CHILD, IDC_MYBUTTON,
10, 95, 200, 20, hWnd, 0);
break;
case MSG_CLOSE:
DestroyAllControls (hWnd);
DestroyMainWindow (hWnd);
PostQuitMessage (hWnd);
return 0;
}
return DefaultMainWinProc(hWnd, message, wParam, lParam);
}
int MiniGUIMain (int args, const char* arg[])
{
MSG Msg;
HWND hMainWnd;
MAINWINCREATE CreateInfo;
#ifdef _MGRM_PROCESSES
JoinLayer(NAME_DEF_LAYER , "capture" , 0 , 0);
#endif
CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION;
CreateInfo.dwExStyle = WS_EX_NONE;
CreateInfo.spCaption = "using mouse capture demo";
CreateInfo.hMenu = 0;
CreateInfo.hCursor = GetSystemCursor(0);
CreateInfo.hIcon = 0;
CreateInfo.MainWindowProc = CaptureWinProc;
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;
ShowWindow(hMainWnd, SW_SHOWNORMAL);
while (GetMessage(&Msg, hMainWnd)) {
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
MainWindowThreadCleanup (hMainWnd);
return 0;
}
#ifndef _LITE_VERSION
#include <minigui/dti.c>
#endif #include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/control.h>
#define IDC_MYBUTTON 100
#define IDC_MYBUTTON2 110
int (*old_button_proc) (hWnd, message, wParam, lParam);
static int MybuttonWindowProc (HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
int temp;
temp = (*old_button_proc) (hWnd, message, wParam, lParam);
switch(message)
{
case MSG_CREATE:
{
SetWindowBkColor(hWnd, COLOR_red);
}
break;
case MSG_SETFOCUS:{
SetWindowBkColor(hWnd, COLOR_red);
}break;
case MSG_KILLFOCUS:
{
SetWindowBkColor(hWnd, COLOR_darkgray);
}break;
}
return(temp);
}
//注册自定义控件
BOOL RegisterMybutton (void)
{
WNDCLASS WndClass;
WndClass.spClassName = CTRL_BUTTON;
GetWindowClassInfo(&WndClass);
old_button_proc = WndClass.WinProc;
WndClass.spClassName = "mybutton";
WndClass.dwStyle = 0;
WndClass.dwExStyle = 0;
WndClass.hCursor = GetSystemCursor(0);
WndClass.iBkColor = PIXEL_lightgray;
WndClass.WinProc = MybuttonWindowProc;
return RegisterWindowClass (&WndClass);
}
/* main windoww proc */
static int CaptureWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
switch (message) {
case MSG_CREATE:
RegisterMybutton();//使用前,注册自定义控件
//创建自定义按钮控件
CreateWindow ("mybutton", "", WS_VISIBLE | WS_CHILD, IDC_MYBUTTON,
10, 95, 200, 20, hWnd, 0);
break;
case MSG_CLOSE:
DestroyAllControls (hWnd);
DestroyMainWindow (hWnd);
PostQuitMessage (hWnd);
return 0;
}
return DefaultMainWinProc(hWnd, message, wParam, lParam);
}
int MiniGUIMain (int args, const char* arg[])
{
MSG Msg;
HWND hMainWnd;
MAINWINCREATE CreateInfo;
#ifdef _MGRM_PROCESSES
JoinLayer(NAME_DEF_LAYER , "capture" , 0 , 0);
#endif
CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION;
CreateInfo.dwExStyle = WS_EX_NONE;
CreateInfo.spCaption = "using mouse capture demo";
CreateInfo.hMenu = 0;
CreateInfo.hCursor = GetSystemCursor(0);
CreateInfo.hIcon = 0;
CreateInfo.MainWindowProc = CaptureWinProc;
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;
ShowWindow(hMainWnd, SW_SHOWNORMAL);
while (GetMessage(&Msg, hMainWnd)) {
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
MainWindowThreadCleanup (hMainWnd);
return 0;
}
#ifndef _LITE_VERSION
#include <minigui/dti.c>
#endif
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/control.h>
#define IDC_MYBUTTON 100
#define IDC_MYBUTTON2 110
int (*old_button_proc) (hWnd, message, wParam, lParam);
static int MybuttonWindowProc (HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
int temp;
temp = (*old_button_proc) (hWnd, message, wParam, lParam);
switch(message)
{
case MSG_CREATE:
{
SetWindowBkColor(hWnd, COLOR_red);
}
break;
case MSG_SETFOCUS:{
SetWindowBkColor(hWnd, COLOR_red);
}break;
case MSG_KILLFOCUS:
{
SetWindowBkColor(hWnd, COLOR_darkgray);
}break;
}
return(temp);
}
//注册自定义控件
BOOL RegisterMybutton (void)
{
WNDCLASS WndClass;
WndClass.spClassName = CTRL_BUTTON;
GetWindowClassInfo(&WndClass);
old_button_proc = WndClass.WinProc;
WndClass.spClassName = "mybutton";
WndClass.dwStyle = 0;
WndClass.dwExStyle = 0;
WndClass.hCursor = GetSystemCursor(0);
WndClass.iBkColor = PIXEL_lightgray;
WndClass.WinProc = MybuttonWindowProc;
return RegisterWindowClass (&WndClass);
}
/* main windoww proc */
static int CaptureWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
switch (message) {
case MSG_CREATE:
RegisterMybutton();//使用前,注册自定义控件
//创建自定义按钮控件
CreateWindow ("mybutton", "", WS_VISIBLE | WS_CHILD, IDC_MYBUTTON,
10, 95, 200, 20, hWnd, 0);
break;
case MSG_CLOSE:
DestroyAllControls (hWnd);
DestroyMainWindow (hWnd);
PostQuitMessage (hWnd);
return 0;
}
return DefaultMainWinProc(hWnd, message, wParam, lParam);
}
int MiniGUIMain (int args, const char* arg[])
{
MSG Msg;
HWND hMainWnd;
MAINWINCREATE CreateInfo;
#ifdef _MGRM_PROCESSES
JoinLayer(NAME_DEF_LAYER , "capture" , 0 , 0);
#endif
CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION;
CreateInfo.dwExStyle = WS_EX_NONE;
CreateInfo.spCaption = "using mouse capture demo";
CreateInfo.hMenu = 0;
CreateInfo.hCursor = GetSystemCursor(0);
CreateInfo.hIcon = 0;
CreateInfo.MainWindowProc = CaptureWinProc;
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;
ShowWindow(hMainWnd, SW_SHOWNORMAL);
while (GetMessage(&Msg, hMainWnd)) {
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
MainWindowThreadCleanup (hMainWnd);
return 0;
}
#ifndef _LITE_VERSION
#include <minigui/dti.c>
#endif #include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/control.h>
#define IDC_MYBUTTON 100
#define IDC_MYBUTTON2 110
int (*old_button_proc) (hWnd, message, wParam, lParam);
static int MybuttonWindowProc (HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
int temp;
temp = (*old_button_proc) (hWnd, message, wParam, lParam);
switch(message)
{
case MSG_CREATE:
{
SetWindowBkColor(hWnd, COLOR_red);
}
break;
case MSG_SETFOCUS:{
SetWindowBkColor(hWnd, COLOR_red);
}break;
case MSG_KILLFOCUS:
{
SetWindowBkColor(hWnd, COLOR_darkgray);
}break;
}
return(temp);
}
//注册自定义控件
BOOL RegisterMybutton (void)
{
WNDCLASS WndClass;
WndClass.spClassName = CTRL_BUTTON;
GetWindowClassInfo(&WndClass);
old_button_proc = WndClass.WinProc;
WndClass.spClassName = "mybutton";
WndClass.dwStyle = 0;
WndClass.dwExStyle = 0;
WndClass.hCursor = GetSystemCursor(0);
WndClass.iBkColor = PIXEL_lightgray;
WndClass.WinProc = MybuttonWindowProc;
return RegisterWindowClass (&WndClass);
}
/* main windoww proc */
static int CaptureWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
switch (message) {
case MSG_CREATE:
RegisterMybutton();//使用前,注册自定义控件
//创建自定义按钮控件
CreateWindow ("mybutton", "", WS_VISIBLE | WS_CHILD, IDC_MYBUTTON,
10, 95, 200, 20, hWnd, 0);
break;
case MSG_CLOSE:
DestroyAllControls (hWnd);
DestroyMainWindow (hWnd);
PostQuitMessage (hWnd);
return 0;
}
return DefaultMainWinProc(hWnd, message, wParam, lParam);
}
int MiniGUIMain (int args, const char* arg[])
{
MSG Msg;
HWND hMainWnd;
MAINWINCREATE CreateInfo;
#ifdef _MGRM_PROCESSES
JoinLayer(NAME_DEF_LAYER , "capture" , 0 , 0);
#endif
CreateInfo.dwStyle = WS_VISIBLE | WS_BORDER | WS_CAPTION;
CreateInfo.dwExStyle = WS_EX_NONE;
CreateInfo.spCaption = "using mouse capture demo";
CreateInfo.hMenu = 0;
CreateInfo.hCursor = GetSystemCursor(0);
CreateInfo.hIcon = 0;
CreateInfo.MainWindowProc = CaptureWinProc;
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;
ShowWindow(hMainWnd, SW_SHOWNORMAL);
while (GetMessage(&Msg, hMainWnd)) {
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
MainWindowThreadCleanup (hMainWnd);
return 0;
}
#ifndef _LITE_VERSION
#include <minigui/dti.c>
#endif
相关文章推荐
- 【Prism】MEF版UIComposition
- UVA 10420 List of Conquests
- Altuim designer 导入PCB,出现错误some nets were not able to be matched
- HDUOJ Number Sequence 题目1005
- HDU 1937 J - Justice League
- iOSUI篇--动画(Core Animation)总结
- Taxi Trip Time Winners' Interview: 3rd place, BlueTaxi
- 【瞎搞】 HDU 5312 Sequence
- HDU 5312 Sequence
- Android中多线程编程(三)Handler更新UI的方式
- ListBuffer、ArrayBuffer、Queue、Stack操作代码实战
- leetcode[96]:Unique Binary Search Trees
- 实现Guice下的单元测试中mybatis数据库操作的回滚.
- MiniGui 多窗口程序(一)
- Implement Stack using Queues && Implement Queue using Stacks (LeetCode)
- leetcode第225题:Implement Stacks using Queues
- easyui searchbox
- UESTC 250 windy数(数位DP)
- UITextField限制文本长度 , UI控件 自适应宽高 。
- ZOJ - 2548 Prerequisites?