c语言可以创建窗口吗,请问c语言可以编写出窗体吗?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

正好在做窗口,给你发个最简单的

#include LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM); int APIENTRY WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow)

{

char szClassName[] = "Window";

WNDCLASS wndclass;

wndclass.style = CS_HREDRAW|CS_VREDRAW; // 指定如果大小改变就重画

wndclass.lpfnWndProc = MainWndProc; // 窗口函数指针

wndclass.cbClsExtra = 0; // 没有额外的类内存

wndclass.cbWndExtra = 0; // 没有额外的窗口内存

wndclass.hInstance = hInstance; // 实例句柄

wndclass.hIcon = ::LoadIcon(NULL,

IDI_APPLICATION); // 使用预定义图标

wndclass.hCursor = ::LoadCursor(NULL,

IDC_ARROW); // 使用预定义的光标

wndclass.hbrBackground = (HBRUSH)

GetStockObject(WHITE_BRUSH); // 使用白色背景画刷

wndclass.lpszMenuName = NULL; // 不指定菜单

wndclass.lpszClassName = szClassName ; // 窗口类的名称

// 注册这个窗口类

RegisterClass(&wndclass);

// 创建主窗口

HWND hwnd = ::CreateWindow(

szClassName, // lpClassName,类名

"My first Window!", // lpWindowName,标题

WS_OVERLAPPEDWINDOW, // dwStyle,窗口风格

CW_USEDEFAULT, // X,初始 X 坐标

CW_USEDEFAULT, // Y,初始 Y 坐标

CW_USEDEFAULT, // nWidth,宽度

CW_USEDEFAULT, // nHeight,高度

NULL, // hWndParent,父窗口句柄

NULL, // hMenu,菜单句柄

hInstance, // hlnstance,程序实例句柄

NULL) ; // lpParam,用户数据 if(hwnd == NULL)

{

::MessageBox(NULL, "创建窗口出错!", "error", MB_OK);

return -1;

}

::ShowWindow(hwnd,nCmdShow);

::UpdateWindow(hwnd); MSG msg;

while(::GetMessage(&msg, NULL, 0, 0))

{

::TranslateMessage(&msg);

::DispatchMessage(&msg);

}

return msg.wParam;

}

LRESULT CALLBACK MainWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)

{

static int cxClient, cyClient ;

switch (message)

{

case WM_SIZE:

cxClient = LOWORD (lParam) ;

cyClient = HIWORD (lParam) ;

break;

case WM_PAINT:

{

HDC hdc;

PAINTSTRUCT ps;

hdc = BeginPaint (hwnd, &ps) ;

SetMapMode(hdc,MM_ANISOTROPIC);

SetWindowExtEx(hdc,2,2,NULL);

SetViewportExtEx(hdc,cxClient,cyClient,NULL);

LineTo(hdc,1,1);

::EndPaint(hwnd, &ps);

return 0;

}

case WM_DESTROY:

PostQuitMessage(0) ;

return 0 ;

}

return ::DefWindowProc(hwnd, message, wParam, lParam);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值