MiniGUI就不作详细介绍了。 反正就是嵌入式方面用的比较广泛的一套开源的东西。 不过貌似现在新版本不开源了。
其实貌似mGNCS这套东西实现了按钮的扩展的,不过不知道怎么用,丫的一点介绍都没得。
无赖就自己写了。 一个自定义按钮类。 可以实现图片载入,鼠标滑动会有相应的效果。
static int LoadMyBitmap()
{
if(!loadbitmap(HDC_SCREEN,&bmp,"bmp.bmp")) return 1; //loadbitmap函数忘了 差不多就这样。下班回来写的。没搞代码
}
static int UnloadMyBitmap()
{
UnloadBitmap(&bmp);
}
static int ButtonControlProc(HWND hwnd,int message,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
switch(message)
{
case MSG_PAINT: //设置一开始的按钮外观,贴图,或者加文字什么的。都可以在这里搞。
{
hdc = BeginPaint(hwnd);
RECT rect;
GetClientRect(hwnd,&rect);
FillBoxWithBitmap(hdc,rect.left,rect.top,rect.right,rect.bottom,&bmp);
EndPaint(hwnd,hdc);
}
case MSG_MOUSEMOVE: //这个消息是当鼠标落在该窗口上时触发。在这里就将位图换成其他的,就可以达到动态效果
{
}
case MSG_MOUSEMOVEIN: //这个消息是当鼠标从该窗口上移出去是触发,将窗口位图还原成最开始的位图。
{
}
}
case MSG_LBUTTONDOWN: //这个不说就知道了把。鼠标左键按下触发,设置位图
{
}
case MSG_LBUTTONUP:// 鼠标左键弹起触发,还原位图。
{
}
DefaultControlProc(hwnd,message,wParam,lParam);
}
RegisterMyControl()
{
WNDCLASS myClass;
myClass.dwClassName = 类名。
不想写了,记不清楚 将myClass成员赋值后,
RegisterClass(&myClass);
}
UnRegisterMyControl()
{
UnRegisterClass(类名);
}
这就实现了 一个自定义按钮控件, 使用的话在对话框数据里面想普通控件一样使用就是。 注意自定义控件要多发送消息。来实现效果。