默认情况下,MiniGUI系统只向光标热点之下的窗口发送鼠标信息,但是,对窗口设置捕获后,即是窗口不在鼠标下,也可接收鼠标消息,只能同时设置1个窗口为捕获窗口。
MiniGUI自带的鼠标捕获演示程序capture.c很难看出捕获的效果,甚至让不熟悉界面编程的人产生误解,所以我改写了示例程序,鼠标右击下面的窗口可切换下面的窗口是否为捕获窗口。
#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
/* a simple button control */
static int MybuttonWindowProc (HWND hWnd, int message, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
static int status = 0;
char buff[20]="";
static int flag=0;
switch (message) {
case MSG_RBUTTONDOWN:
if(flag==0) {
SetCapture (hWnd);
flag=1;
}
else {
ReleaseCapture();
flag=0;
}
break;