鱼C论坛

 找回密码
 立即注册
查看: 1730|回复: 2

[学习笔记] 使用子窗口和键盘

[复制链接]
发表于 2019-10-24 10:25:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
功能 :创建25个子窗口

    通过键盘实现移动和点击的操作

在主窗口中

当主窗口获取焦点时,

    WM_SETFOCUS时

          设置默认的子窗口焦点

          默认的子窗口ID值为0;

          即idFocus =0;

         SetFocus(GetDLgItem(hWnd,idFocus));

   此时子窗口获得焦点

那么在子窗口中

    WM_CREATE:

          SetWindowLongPtr(hWnd,0,0);   //子窗口的预留空间置为零,相当于初始化

           SetFocus(hWnd);//该句我的理解时保持获取焦点

此时点击的话就会有如下代码

 按下按钮时

 WM_KEYDOWN:

         if(wParam  !=VK_RETURN  && wParam != VK_SPACE)

         {

                  SendMessage(GetParent(hWnd),WM_KEYDOWN,wParam,0);

                  return 0;

          }

         若按下回车和空格键,表示点击了。那么就在当前的子窗口点击  ,因此没有return 

  WM_LBUTTONDOWN:

          SetWindowLongPtr(hWnd,0,1^GetWindowLongPtr(hWnd,0));  //设置和预留空间相与

          InvalidateRect(hWnd,NULL,TRUE);

当其获取焦点时可以把窗口的ID赋值给IdFocus;

WM_SETFOCUS:

         IdFocus = GetWindowLongPtr(hWnd,GWL_ID);

当时失去焦点时记得刷新画布

WM_KILLFOCUS:

         InvalidateRect(hWnd,NULL,TRUE);

         break;

最后时绘制函数

WM_PAINT:

      hdc=BeginPaint(hWnd,&ps);

      GetClientRect(hWnd,&rect);

      Rectangle(hdc,0,0,rect.right,rect.bottom);

     if(GetWindowLongPtr(hWnd,0))

     { 

             MoveToEx(hdc,0,0,NULL);

             LineTo(hdc,rect.right,rect.bottom);

             MoveToEx(hdc,rect.right,0,NULL);

             LineTo(hdc,0,rect.bottom);

      }

   if(GetFocus()==hWnd)

 {

            rect.left += rect.right / 10;
            rect.right -= rect.left;
            rect.top += rect.bottom / 10;
            rect.bottom -= rect.top;

            SelectObject(hdc, GetStockObject(NULL_BRUSH));
            SelectObject(hdc, CreatePen(PS_DASH, 0, 0));
            Rectangle(hdc, rect.left, rect.top, rect.right, rect.bottom);
            DeleteObject(SelectObject(hdc, GetStockObject(BLACK_PEN)));



 }

      EndPaint(hWnd,&ps);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-24 11:22:28 From FishC Mobile | 显示全部楼层
沙发
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-10-25 09:41:51 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-18 17:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表