#include<windows.h>
#include<stdio.h>
#include<stdlib.h>
#include"resource.h"
LRESULT CALLBACK WndProc(HWND hwnd,UINT message ,WPARAM wParam,LPARAM lParam);
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
char lpszClassName[]="窗口";
char lpszTitle[]="简单的Windows API 编程";
WNDCLASS wndclass;
wndclass.style=0;
wndclass.lpfnWndProc=WndProc;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hInstance=hInstance;
wndclass.hIcon=(HICON)::LoadImage(hInstance,MAKEINTRESOURCE(IDI_ICON),
IMAGE_ICON,64,64,LR_DEFAULTCOLOR);
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszMenuName=(LPCTSTR)IDM_MENU;
wndclass.lpszClassName=lpszClassName;
RegisterClass(&wndclass);
//if(!RegisterClass(&wndclass));
//{ MessageBeep(0);
// return FALSE;
//};
HWND hwnd;
hwnd=CreateWindow(lpszClassName,lpszTitle,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,
350,350, NULL,NULL,hInstance,NULL);
ShowWindow(hwnd,SW_SHOWNORMAL);
UpdateWindow(hwnd);
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{ TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd,UINT message ,WPARAM wParam,LPARAM lParam)
{
char messageleft[]=" the rights button have been pushed";
static BOOL f=false;
static BOOL l=false;
static BOOL r=false;
static BOOL e=false;
static BOOL s=false;
switch(message)
{
case WM_COMMAND:
switch (wParam)
{
case ID_GRAPH_POINT:
HDC h;
h=GetDC(hwnd);
//HPEN hnewpen,holdpen;
//hnewpen=CreatePen(PS_DASHDOT,1,RGB(255,0,0));
//holdpen=(HPEN)SelectObject(h,hnewpen);
SetPixel (h, 70, 45, RGB(255,0,0)) ;
TextOut(h,30,30,"画点",strlen("画点"));
//SelectObject(h,holdpen);
//DeleteObject(hnewpen);
ReleaseDC(hwnd,h);
f=true;
break;
case ID_GRAPH_LINE:
HDC g;
g=GetDC(hwnd);
//hnewpen=CreatePen(PS_DASHDOT,1,RGB(255,255,0));
//holdpen=(HPEN)SelectObject(g,hnewpen);
TextOut(g,30,50,"画线",strlen("画线"));
MoveToEx (g, 60, 60, NULL) ;
LineTo (g, 150, 60) ;
//SelectObject(g,holdpen);
//DeleteObject(hnewpen);
ReleaseDC(hwnd,g);
l=true;
break;
case ID_GRAPH_RECT:
HDC m;
m=GetDC(hwnd);
TextOut(m,30,90,"矩形",strlen("矩形"));
Rectangle(m,70,100,150,150) ;
ReleaseDC(hwnd,m);
r=true;
break;
case ID_GRAPH_ELLIPSE:
HDC n;
n=GetDC(hwnd);
TextOut(n,30,150,"椭圆",strlen("椭圆"));
Ellipse(n,70,160,200,250) ;
ReleaseDC(hwnd,n);
e=true;
break;
case IDD_HELP:
MessageBox(GetFocus(),"简单的Windows API 编程","help",MB_OK|MB_ICONQUESTION);
break;
case ID_ABOUTME:
MessageBox(GetFocus(),"初次WinApi编程,水平有限","关于我",MB_OK|MB_ICONINFORMATION);
break;
default:
return DefWindowProc(hwnd, message, wParam, lParam);
}
break;
case WM_LBUTTONDOWN:
s=true;
HDC hdc;
hdc=GetDC(hwnd);
TextOut(hdc,150,20,"Hello World",strlen("Hello World"));
ReleaseDC(hwnd,hdc);
break;
case WM_PAINT:
HDC hDC;
PAINTSTRUCT ps;
hDC=(HDC)BeginPaint(hwnd,&ps);
if(f)
{
SetPixel (hDC, 70, 45, RGB(255,0,0)) ;
TextOut(hDC,30,30,"画点",strlen("画点"));
}
if(l)
{
TextOut(hDC,30,50,"画线",strlen("画线"));
MoveToEx (hDC, 60, 60, NULL) ;
LineTo (hDC, 150, 60) ;
}
if(r)
{
TextOut(hDC,30,90,"矩形",strlen("矩形"));
Rectangle(hDC,70,100,150,150) ;
}
if(e)
{
TextOut(hDC,30,150,"椭圆",strlen("椭圆"));
Ellipse(hDC,70,160,200,250) ;
}
if(s)
{
TextOut(hDC,150,20,"Hello World",strlen("Hello World"));
}
EndPaint(hwnd,&ps);
break;
case WM_RBUTTONDOWN:
MessageBox(GetFocus(),messageleft,"hello",MB_OK|MB_ICONINFORMATION);
break;
case WM_DESTROY:
PostQuitMessage(0);
default:
return DefWindowProc(hwnd,message,wParam,lParam);
}
return 0;
}
Win32 API 简单编程代码
5星 · 超过95%的资源 需积分: 10 80 浏览量
2008-09-24
10:53:12
上传
评论
收藏 492KB RAR 举报
zqzy365
- 粉丝: 6
- 资源: 7
最新资源
- Python大作业:音乐播放软件(爬虫+可视化+数据分析+数据库)
- 课程设计-python爬虫-爬取日报,爬取日报文章后存储到本地,附带源代码+课程设计报告
- 软件和信息技术服务行业投资与前景预测.pptx
- 课程设计-基于SpringBoot + Mybatis+python爬虫NBA球员数据爬取可视化+源代码+文档+sql+效果图
- 软件品质管理系列二项目策划规范.doc
- 基于TensorFlow+PyQt+GUI的酒店评论情感分析,支持分析本地数据文件和网络爬取数据分析+源代码+文档说明+安装教程
- 软件定义无线电中的模拟电路测试技术.pptx
- 软件开发协议(作为技术开发合同附件).doc
- 软件开发和咨询行业技术趋势分析.pptx
- 软件测试题详解及答案.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈