WinAPI: Pie - 绘制饼图

//声明:
Pie(
  DC: HDC;                                {设备环境句柄}
  X1, Y1, X2, Y2, X3, Y3, X4, Y4: Integer {四个坐标点}
): BOOL;

 
 
 
 
 

 

 

  

//举例:
procedure TForm1.FormPaint(Sender: TObject);
const
  x1 = 10;
  y1 = 10;
  x2 = 200;
  y2 = 200;
  x3 = 130;
  y3 = 200;
  x4 = 160;
  y4 = 10;
begin
  Canvas.TextOut(x1,y1, '第一点');
  Canvas.TextOut(x2,y2, '第二点');
  Canvas.TextOut(x3,y3, '第三点');
  Canvas.TextOut(x4,y4, '第四点');
  
  Pie(Canvas.Handle, x1,y1, x2,y2, x3,y3, x4,y4);
end;

 
 
 
 
 

 

 

  

//效果图:
26153333_Ujge.png

转载于:https://my.oschina.net/hermer/blog/319772

以下是一个简单的实现 Windows 应用程序的代码,可以根据用户输入的成绩计算对应的等级,并给出相应的提示。同时,程序还包含了对无效成绩的处理和退出功能。 ```c++ #include <Windows.h> #include <string> // 定义等级和分数的对应关系 const std::string GRADE_TABLE[] = { "D", "C", "B", "A" }; const int SCORE_TABLE[] = { 0, 60, 80, 90 }; // 窗口标题和控件 ID const char* WINDOW_TITLE = "Grade Calculator"; const int EDIT_CONTROL_ID = 1; const int BUTTON_CONTROL_ID = 2; // 窗口句柄和控件句柄 HWND g_hWnd; HWND g_hEdit; HWND g_hButton; // 处理按钮点击事件 void OnButtonClick() { // 获取用户输入的成绩 char buffer[256]; GetWindowTextA(g_hEdit, buffer, 256); int score = atoi(buffer); // 判断输入的成绩是否有效 if (score < 0 || score > 100) { MessageBoxA(g_hWnd, "Invalid score!", "Error", MB_OK); return; } // 计算对应的等级 int grade = 0; for (int i = 0; i < 4; i++) { if (score >= SCORE_TABLE[i]) { grade = i; } else { break; } } // 显示对应的等级 std::string message = "Grade: " + GRADE_TABLE[grade]; MessageBoxA(g_hWnd, message.c_str(), "Result", MB_OK); } // 处理窗口消息 LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { case WM_CREATE: // 创建编辑框控件 g_hEdit = CreateWindowA("EDIT", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER, 20, 20, 200, 24, hWnd, (HMENU)EDIT_CONTROL_ID, NULL, NULL); // 创建按钮控件 g_hButton = CreateWindowA("BUTTON", "Calculate", WS_CHILD | WS_VISIBLE, 20, 60, 100, 30, hWnd, (HMENU)BUTTON_CONTROL_ID, NULL, NULL); break; case WM_COMMAND: // 处理按钮点击事件 if (LOWORD(wParam) == BUTTON_CONTROL_ID) { OnButtonClick(); } break; case WM_DESTROY: // 退出程序 PostQuitMessage(0); break; default: return DefWindowProc(hWnd, uMsg, wParam, lParam); } return 0; } // 应用程序入口函数 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // 注册窗口类 WNDCLASSA wc = { 0 }; wc.lpfnWndProc = WindowProc; wc.hInstance = hInstance; wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); wc.lpszClassName = "GradeCalculator"; RegisterClassA(&wc); // 创建窗口 g_hWnd = CreateWindowA("GradeCalculator", WINDOW_TITLE, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 300, 150, NULL, NULL, hInstance, NULL); // 显示窗口 ShowWindow(g_hWnd, nCmdShow); UpdateWindow(g_hWnd); // 消息循环 MSG msg; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return 0; } ``` 这个程序用到了 Win32 API 来创建窗口和控件,并处理用户输入和按钮点击事件。通过判断用户输入的成绩是否有效,计算对应的等级,并给出提示。如果输入的成绩无效,程序会弹出一个提示框告诉用户。程序还包含了退出功能,用户可以通过关闭窗口或者按下 Alt + F4 来退出程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值