鱼C论坛

 找回密码
 立即注册
查看: 2297|回复: 1

hPen = GetStockObject(WHITE_PEN);这为什么错了

[复制链接]
发表于 2019-8-27 20:48:16 | 显示全部楼层 |阅读模式

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

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

x
  1. #include <windows.h>
  2. #include <strsafe.h>


  3. // Step 4: the Window Procedure
  4. LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
  5.         lParam)
  6. {

  7.         HDC hdc;
  8.         size_t iTarget;
  9.         TEXTMETRIC tm;
  10.         static int cxChar, cyChar;
  11.         static int cxClient, cyClient;//定议二个便量来存放屏幕的分辨率 水平与垂直方向二个值
  12.         PAINTSTRUCT ps;
  13.         TCHAR szBuffer[128];//定义一个缓冲区
  14.         RECT rect;// 定义一个结构体,drawtext用到个参数,
  15.         HPEN hPen, hOldPan;
  16.         switch (msg)
  17.         {
  18.         case WM_PAINT://窗口重绘
  19.                 hdc = BeginPaint(hwnd, &ps);//注意这儿是取地址
  20.                 GetClientRect(hwnd, &rect);
  21.                 hPen = GetStockObject(WHITE_PEN);
  22.                 Ellipse(hdc, 100, 100, 200, 200);//椭圆  圆形就注意坐标就可以了
  23.                 EndPaint(hwnd, &ps);
  24.                 return 0;
  25.         case WM_CLOSE:
  26.                 DestroyWindow(hwnd);//要销毀的窗口送出WM_DESTORY消息,
  27.                 break;
  28.         case WM_DESTROY:
  29.                 PostQuitMessage(0);
  30.                 break;
  31.         default:
  32.                 return DefWindowProc(hwnd, msg, wParam, lParam);
  33.         }
  34.         return 0;

  35. }
  36. //------------------------------------------------------------------
  37. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
  38. {
  39.         //第一步:注册窗口
  40.         WNDCLASSEX wc;
  41.         wc.cbSize = sizeof(WNDCLASSEX);//结构体的大小
  42.         wc.style = CS_VREDRAW|CS_HREDRAW;//类的式样(CS_*),不要跟窗口式样(WS_*)混淆了
  43.         wc.lpfnWndProc = WndProc;//指向这个回调函数
  44.         wc.cbClsExtra = 0;//配置给这个类的额外內存.一般为0
  45.         wc.cbWndExtra = 0;//配置给这个类的每个窗口的额外內存.一般为0
  46.         wc.hInstance = hInstance;//应用程序实例的句柄.(从WinMain()第一个参数传递来.)
  47.         wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);//当用戶按下Alt+Tab组合时候显示的大图标(一般为32*32)
  48.         wc.hCursor = LoadCursor(NULL, IDC_ARROW); //在我们的窗口上显示的光标
  49.         wc.hbrBackground = (HBRUSH)(COLOR_WINDOW);//设置我们窗口背景顏色的背景刷子.
  50.         wc.lpszMenuName = NULL;//这个类的窗口所用的菜单资源的名字
  51.         wc.lpszClassName = TEXT("g_szClassName");//类的名字-----
  52.         wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);//在任务栏和窗口的左上角显示的小图标(一般为16*16)
  53.         RegisterClassEx(&wc);

  54.         // 第二步,建立窗口
  55.         HWND hwnd;
  56.         hwnd = CreateWindowEx(  //是扩展的窗口式样
  57.                 WS_EX_CLIENTEDGE,//是扩展的窗口式样
  58.                 TEXT("g_szClassName"),//类的名字-----刚刚注册的类
  59.                 TEXT("我的第一个窗口"),//我们窗口的名字或是标题,用来显示在我们窗口的外观或是标题栏上
  60.                 WS_OVERLAPPEDWINDOW | WS_VSCROLL | WS_HSCROLL,//是一个窗口式样参数,第二个与第三个是水平垂直滚动条
  61.                 0,//CW_USEDEFAULT 来让系统自己选择在屏幕的哪个地方来放置窗口.
  62.                 0,//CW_USEDEFAULT,
  63.                 500,
  64.                 300,
  65.                 NULL,
  66.                 NULL,
  67.                 hInstance,
  68.                 NULL);

  69.         ShowWindow(hwnd, nCmdShow);
  70.         UpdateWindow(hwnd);

  71.         MSG Msg; //定议消息结构
  72.         while (GetMessage(&Msg, NULL, 0, 0) > 0)
  73.         {
  74.                 TranslateMessage(&Msg);
  75.                 DispatchMessage(&Msg);
  76.         }
  77.         return Msg.wParam;
  78. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-8-28 22:43:31 | 显示全部楼层
hPen = GetStockObject(WHITE_PEN);   这行改成:

hPen = (HPEN)GetStockObject(WHITE_PEN);
SelectObject(hdc,hPen);
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-6 13:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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