我的这个SDK程序为什么不能显示标题?

dszch dszch 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
//我的SDK程序,已调通,为什么不能显示标题?语法我检查了应该没有错误.
//我猜想可能是环境变量的设置问题
//请高手指点
#include <windows.h>
#include <stdio.h>
#include <math.h>

#define MAX_NUM 10000
#define PANE_CONS 100
#define PI 3.1415927

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

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
static TCHAR szAppName[] = TEXT ("HelloWin") ;
HWND hwnd ;
MSG msg ;

////////////////////////建立,注册窗口类
WNDCLASS wc ;
wc.style = CS_HREDRAW | CS_VREDRAW ;
wc.lpfnWndProc = WndProc ;
wc.cbClsExtra = 0 ;
wc.cbWndExtra = 0 ;
wc.hInstance = hInstance ;
wc.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;
wc.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wc.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wc.lpszMenuName = NULL ;
wc.lpszClassName = szAppName ;

//////////////////////注册窗口类
if (!RegisterClass (&wc))
{
MessageBox (NULL, TEXT ("This program requires Windows NT!"),
szAppName, MB_ICONERROR) ;
return 0 ;
}

/////////////////////(二)创建窗口
hwnd = CreateWindow (szAppName, // window class name
TEXT ("欢迎你的到来!"), // window caption
WS_OVERLAPPEDWINDOW, // window style
CW_USEDEFAULT, // initial x position
CW_USEDEFAULT, // initial y position
CW_USEDEFAULT, // initial x size
CW_USEDEFAULT, // initial y size
NULL, // parent window handle
NULL, // window menu handle
hInstance, // program instance handle
NULL) ; // creation parameters


/////////////////////(三)显示和更新窗口
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;


////////////////////(四)创建消息循环
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}

////////////////////(六)窗口过程

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hdc ;
static int cxClient,cyClient;
PAINTSTRUCT ps ;
POINT Points[MAX_NUM];
static HPEN hpen1,hpen2,hpen3;
int i;
int x,y;


///////////////////(七)处理消息
switch (message)
{
case WM_CREATE:
// 创建逻辑画笔
hpen1=CreatePen(PS_SOLID,3,RGB(0,0,0)); //实线、3个像素宽、黑色
hpen2=CreatePen(PS_SOLID,1,RGB(255,0,0)); //实线、一个像素宽、红色
hpen3=CreatePen(PS_SOLID,1,RGB(0,0,255)); //实线、一个像素宽、兰色

return 0;

case WM_SIZE:
//获取用户区大小
cxClient=LOWORD(lParam);
cyClient=HIWORD(lParam);
return 0;

case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;

/////绘制坐标网格,使用默认画笔,黑色
for(x=cxClient/PANE_CONS;x<cxClient;x+=cxClient/PANE_CONS)
{
MoveToEx(hdc,x,0,NULL);
LineTo(hdc,x,cyClient);
}

for(y=cyClient/PANE_CONS;y<cyClient;y+=cyClient/PANE_CONS)
{
MoveToEx(hdc,0,y,NULL); //选定直线的起点
LineTo(hdc,cxClient,y); //画直线到终点
}

///////使用画笔hpen1,3像素宽黑笔,画坐标基线X
SelectObject(hdc,hpen1);
MoveToEx(hdc,0,cyClient/2,NULL);
LineTo(hdc,cxClient,cyClient/2);

///////使用画笔hpen1,3像素宽黑笔,画坐标基线y,为明显起见,左移了一个像素
MoveToEx(hdc,1,0,NULL);
LineTo(hdc,1,cyClient);


////////绘制画正弦曲线,使用画笔hpen2,红色
SelectObject( hdc, hpen2 );
for( i = 0; i < MAX_NUM; i++ )
{
Points[i].x = i * cxClient / MAX_NUM;
Points[i].y = (int) (cyClient/2 * (1 - sin( PI * 2 * i / MAX_NUM)) );
}
Polyline( hdc, Points, MAX_NUM );

///////绘制余弦曲线,使用画笔hpen3,兰色
SelectObject(hdc,hpen3);
for( i = 0; i < MAX_NUM; i++ )
{
Points[i].x = i * cxClient / MAX_NUM;
Points[i].y = (int) (cyClient/2 * (1 - cos( PI * 2 * i / MAX_NUM)) );
}
Polyline( hdc, Points, MAX_NUM );


SelectObject(hdc,GetStockObject(BLACK_PEN));
EndPaint (hwnd, &ps) ;
return 0 ;

//////////////////(五)终止应用程序.
case WM_DESTROY:
DeleteObject(hpen1);
DeleteObject(hpen2);

PostQuitMessage (0) ;
return 0 ;
}

return DefWindowProc (hwnd, message, wParam, lParam) ;
}
...全文
评论 17
收藏 已收藏
分享
返回顶部
dszch
VC.NET 7,538 成员 27,670 内容