日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

第四章 绘图 windows程序设计 王艳平版

發布時間:2023/12/29 windows 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第四章 绘图 windows程序设计 王艳平版 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
///
// SineWave.cpp文件




#include <windows.h>
#include <math.h>


LRESULT __stdcall WndProc(HWND, UINT, WPARAM, LPARAM);


int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
char szWindowClass[] = "SineWave";


// 注冊窗口類
WNDCLASSEX wcex;


wcex.cbSize = sizeof(WNDCLASSEX);?
wcex.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
wcex.lpfnWndProc = (WNDPROC)WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = NULL;
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)::GetStockObject(WHITE_BRUSH);
wcex.lpszMenuName = NULL;
wcex.lpszClassName = szWindowClass;
wcex.hIconSm = NULL;


::RegisterClassEx(&wcex);




// 創建并線程主窗口
HWND hWnd = ::CreateWindowEx(?
WS_EX_CLIENTEDGE, // 擴展樣式
szWindowClass, // 類名
"正弦線", // 標題
WS_OVERLAPPEDWINDOW, // 窗口樣式
CW_USEDEFAULT, // 初始 X 坐標
CW_USEDEFAULT, // 初始 X 坐標
CW_USEDEFAULT, // 寬度
CW_USEDEFAULT, // 高度
NULL, // 父窗口句柄
NULL, ? ? ? ?// 菜單句柄
hInstance, // 程序實例句柄
NULL);


::ShowWindow(hWnd, nShowCmd);
::UpdateWindow(hWnd);


// 進入消息循環
MSG msg;
while(::GetMessage(&msg, NULL, 0, 0))
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);?
}




return 1;
}




// 消息處理函數 ? ?// 03SineWave工程下
LRESULT __stdcall WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
#define SEGMENTS 500 ?// 取的點數(在一個周期內取500個點)
#define PI 3.1415926 ?// 圓周率


HDC hdc;
PAINTSTRUCT ps;
RECT rt;
int cxClient, cyClient;
POINT pt[SEGMENTS];
int i;

switch(message)
{
case WM_PAINT:
hdc = ::BeginPaint(hWnd, &ps);
::GetClientRect(hWnd, &rt);
cxClient = rt.right - rt.left;
cyClient = rt.bottom - rt.top;


// 畫橫坐標軸
::MoveToEx(hdc, 0, cyClient/2, NULL);
::LineTo(hdc, cxClient, cyClient/2);
// 找出500個點的坐標
for(i=0; i<SEGMENTS; i++)
{
pt[i].x = cxClient*i/SEGMENTS;
pt[i].y = (int)((cyClient/2)*(1 - sin(2*PI*i/SEGMENTS)));
}
// 將各點連在一起
::Polyline(hdc, pt, SEGMENTS);


::EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
::PostQuitMessage(0);
break;
}
return ::DefWindowProc(hWnd, message, wParam, lParam);
}

總結

以上是生活随笔為你收集整理的第四章 绘图 windows程序设计 王艳平版的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。