松V溪 发表于 2022-10-24 11:41:52

利用窗体句柄实现圆形窗口???

        int cx = ((rcWind.right - rcWind.left) - rcClient.right) / 2;
        int cy = ((rcWind.bottom - rcWind.top + GetSystemMetrics(SM_CYCAPTION)) - rcClient.bottom) / 2;

        // 设置圆形区域
        //HRGN rgn = CreateEllipticRgn(0 + cx, 0 + cy, 640 + cx, 640 + cy);

有没有哪位鱼油看的懂这串代码,我实在是不理解cx,cy的算法;{:10_266:}

kishere 发表于 2022-10-26 17:24:46

https://baike.baidu.com/item/CreateEllipticRgn/8198379

松V溪 发表于 2022-10-27 13:47:29

kishere 发表于 2022-10-26 17:24
https://baike.baidu.com/item/CreateEllipticRgn/8198379

可是我连cx和cy怎么算的都不知道{:10_266:}

两手空空儿 发表于 2022-11-7 15:12:46

本帖最后由 两手空空儿 于 2022-11-7 15:29 编辑


//描述的太不明确,猜测一下
//rcWind是客户区窗口尺寸,rcClient是客户区内的子窗口尺寸,在这个前提下:
//cx,cy这个点的位置在Wind之内,在Client之外,后面用这个点作为起始点设置了一个区域
//现在的情况是不知道原作者的意图,纠结于这两行代码并没有什么意义

      int cx = ((rcWind.right - rcWind.left) - rcClient.right) / 2;                                                
      int cy = ((rcWind.bottom - rcWind.top + GetSystemMetrics(SM_CYCAPTION)) - rcClient.bottom) / 2;

      // 设置圆形区域
      //HRGN rgn = CreateEllipticRgn(0 + cx, 0 + cy, 640 + cx, 640 + cy);
页: [1]
查看完整版本: 利用窗体句柄实现圆形窗口???