关于MiniGUI的控件的超类化
时间:2006-07-31 来源:bradyuan
下面是一个button的超类化程序
[email protected]
2006-07-31
/*Minigui 相关头文件*/
#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/control.h>
//---- 自定义button ----
#define MY_CTRL_BUTTON "b_button"
/*******************************************
* 函数名: MyButtonControlProc()
* 输入:
* 输出:
* 功能描述: button的消息处理函数
* 作者:
* 日期:
********************************************/
static int MyButtonControlProc (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_darkgray);
}break;
case MSG_SETFOCUS:{
SetWindowBkColor(hWnd, COLOR_darkblue);
}break;
case MSG_KILLFOCUS:{
SetWindowBkColor(hWnd, COLOR_darkgray);
}break;
}
return(temp);
}
/*******************************************
* 函数名: RegisterMyButtonControl()
* 输入:
* 输出:
* 功能描述: 向系统注册控件
* 作者:
* 日期:
********************************************/
BOOL RegisterMyButtonControl (void)
{
WNDCLASS MyButtonClass;
MyButtonClass.spClassName = CTRL_BUTTON;
GetWindowClassInfo(&MyButtonClass);
old_button_proc = MyButtonClass.WinProc;
MyButtonClass.spClassName = MY_CTRL_BUTTON;
MyButtonClass.dwStyle = WS_NONE;
MyButtonClass.dwExStyle = WS_EX_NONE;
MyButtonClass.hCursor = GetSystemCursor (IDC_ARROW);
MyButtonClass.iBkColor = COLOR_lightwhite;
MyButtonClass.WinProc = MyButtonControlProc;
return RegisterWindowClass (&MyButtonClass);
}
/*******************************************
* 函数名: UnregisterMyButtonControl()
* 输入:
* 输出:
* 功能描述: 向系统取消注册控件
* 作者:
* 日期:
********************************************/
void UnregisterMyButtonControl (void)
{
UnregisterWindowClass (MY_CTRL_BUTTON);
}
//应用程序调用RegisterMyButtonControl和UnregisterMyButtonControl
[email protected]
2006-07-31
/*Minigui 相关头文件*/
#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/control.h>
//---- 自定义button ----
#define MY_CTRL_BUTTON "b_button"
/*******************************************
* 函数名: MyButtonControlProc()
* 输入:
* 输出:
* 功能描述: button的消息处理函数
* 作者:
* 日期:
********************************************/
static int MyButtonControlProc (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_darkgray);
}break;
case MSG_SETFOCUS:{
SetWindowBkColor(hWnd, COLOR_darkblue);
}break;
case MSG_KILLFOCUS:{
SetWindowBkColor(hWnd, COLOR_darkgray);
}break;
}
return(temp);
}
/*******************************************
* 函数名: RegisterMyButtonControl()
* 输入:
* 输出:
* 功能描述: 向系统注册控件
* 作者:
* 日期:
********************************************/
BOOL RegisterMyButtonControl (void)
{
WNDCLASS MyButtonClass;
MyButtonClass.spClassName = CTRL_BUTTON;
GetWindowClassInfo(&MyButtonClass);
old_button_proc = MyButtonClass.WinProc;
MyButtonClass.spClassName = MY_CTRL_BUTTON;
MyButtonClass.dwStyle = WS_NONE;
MyButtonClass.dwExStyle = WS_EX_NONE;
MyButtonClass.hCursor = GetSystemCursor (IDC_ARROW);
MyButtonClass.iBkColor = COLOR_lightwhite;
MyButtonClass.WinProc = MyButtonControlProc;
return RegisterWindowClass (&MyButtonClass);
}
/*******************************************
* 函数名: UnregisterMyButtonControl()
* 输入:
* 输出:
* 功能描述: 向系统取消注册控件
* 作者:
* 日期:
********************************************/
void UnregisterMyButtonControl (void)
{
UnregisterWindowClass (MY_CTRL_BUTTON);
}
//应用程序调用RegisterMyButtonControl和UnregisterMyButtonControl
相关阅读 更多 +