鱼C论坛

 找回密码
 立即注册
查看: 3726|回复: 7

如何将窗口的非客户区做成圆形,而不是在里面添加。

[复制链接]
发表于 2014-7-15 11:18:48 | 显示全部楼层 |阅读模式

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

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

x
求助:问题如上,为了多学一点,请帮忙,给出要查的知识点或书籍都可。

       是不是还要找VGA与汇编知识吗。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-15 13:35:21 | 显示全部楼层
不会实现,用duilib试试。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-7-15 17:40:53 | 显示全部楼层
  1. #include <windows.h>
  2. #include <stdio.h>

  3. LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

  4. int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
  5.                     PSTR szCmdLine, int iCmdShow)
  6. {
  7.         static TCHAR szAppName[] = TEXT ("HelloWin") ;
  8.         HWND         hwnd ;
  9.         MSG          msg ;
  10.         WNDCLASS     wndclass ;
  11.        
  12.         wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
  13.         wndclass.lpfnWndProc   = WndProc ;
  14.         wndclass.cbClsExtra    = 0 ;
  15.         wndclass.cbWndExtra    = 0 ;
  16.         wndclass.hInstance     = hInstance ;
  17.         wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
  18.         wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
  19.         wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
  20.         wndclass.lpszMenuName  = NULL ;
  21.         wndclass.lpszClassName = szAppName ;
  22.        
  23.         if (!RegisterClass (&wndclass))
  24.         {
  25.                 MessageBox (NULL, TEXT ("This program requires Windows NT!"),
  26.                         szAppName, MB_ICONERROR) ;
  27.                 return 0 ;
  28.         }
  29.        
  30.         hwnd = CreateWindow (szAppName,                  // window class name
  31.                 TEXT ("The Hello Program"), // window caption
  32.                 WS_OVERLAPPEDWINDOW,        // window style
  33.                 CW_USEDEFAULT,              // initial x position
  34.                 CW_USEDEFAULT,              // initial y position
  35.                 CW_USEDEFAULT,              // initial x size
  36.                 CW_USEDEFAULT,              // initial y size
  37.                 NULL,                       // parent window handle
  38.                 NULL,                       // window menu handle
  39.                 hInstance,                  // program instance handle
  40.                 NULL) ;                     // creation parameters
  41.        
  42.         ShowWindow (hwnd, iCmdShow) ;
  43.         UpdateWindow (hwnd) ;

  44.         while (GetMessage (&msg, NULL, 0, 0))
  45.         {
  46.                 TranslateMessage (&msg) ;
  47.                 DispatchMessage (&msg) ;
  48.         }
  49.         return msg.wParam ;
  50. }

  51. LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
  52. {
  53.         HDC         hdc ;
  54.         PAINTSTRUCT ps ;
  55.         RECT        rect ;
  56.        
  57.         switch (message)
  58.         {
  59.         case WM_SIZE:{
  60.                 int cx = LOWORD(lParam);
  61.                 int cy = HIWORD(lParam);
  62.                 HRGN hgn = CreateEllipticRgn(0,0,cx,cy);
  63.                 SetWindowRgn( hwnd, hgn, TRUE );
  64.                 return 0;
  65.         }       
  66.         case WM_DESTROY:
  67.                 PostQuitMessage (0) ;
  68.                 return 0 ;
  69.         }
  70.         return DefWindowProc (hwnd, message, wParam, lParam) ;
  71. }
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-15 20:13:58 | 显示全部楼层

大神啊。。能不能用纯汇编写,不要win32。。裸机环境下能运行的那种。。
这你也太厉害了

点评

裸机环境下的与操作系统无关的编程需要直接面对不同型号的硬件,用不同的代码来驱动该硬件,在通用计算机上作这个实验吃力不讨好,因为做起来很复杂,但做完了,由于大家的硬件不同,又没有几个人能用. 我  详情 回复 发表于 2014-7-15 20:42
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-7-15 20:42:03 | 显示全部楼层
jkl666 发表于 2014-7-15 20:13
大神啊。。能不能用纯汇编写,不要win32。。裸机环境下能运行的那种。。
这你也太厉害了

       裸机环境下的与操作系统无关的编程需要直接面对不同型号的硬件,用不同的代码来驱动该硬件,在通用计算机上作这个实验吃力不讨好,因为做起来很复杂,但做完了,由于大家的硬件不同,又没有几个人能用.
       我觉得你是厌倦了编程中老是调用别人写的函数,想真正自己彻底实现一个功能,是吗?如果是这样,你可以买块51单片机的开发板,自己在上面试验.由于没有操作系统,无论用汇编还是C语言,本质上都是直接控制硬件的.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2015-8-22 15:37:44 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-15 04:18:57 | 显示全部楼层
大神啊。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-18 11:09:18 | 显示全部楼层
绝对是大神啊。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 05:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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