主题:求助!!!!!!!!!!!!!
我想在按钮上着色或用图片代替按钮,我该怎么办,下面是一段按钮没着色的代码
#include <windows.h>
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 wndclass ; //窗口类结构
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (hInstance, "ab") ;//加载图标供程序使用
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; //加载鼠标指针供程序使用
HBRUSH Brush=CreatePatternBrush(LoadBitmap(hInstance,"OK"));
wndclass.hbrBackground = Brush;// (HBRUSH) GetStockObject (WHITE_BRUSH) ;//获取一个图形对象,在这个例子中,是获取绘制窗口背景的刷子
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = szAppName ;
if (!RegisterClass (&wndclass))//为程序窗口注册窗口类
{
return 0 ;
}
//根据窗口类创建一个窗口
hwnd = CreateWindow (szAppName,
TEXT ("第一"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL) ;
ShowWindow (hwnd, iCmdShow) ; //在屏幕上显示窗口
UpdateWindow (hwnd) ; //指示窗口刷新自身
// HDC hdc=GetDC(hwnd);
// PaintDesktop(hdc);
//ReleaseDC(hwnd,hdc);//*
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 ;
PAINTSTRUCT ps ;
RECT rect ;
static HWND hBtn;
static HWND hEdit;
static HWND hout;
switch (message)
{
case WM_CREATE:
hBtn=CreateWindow("button","确定",WS_CHILD|WS_VISIBLE,0,0,111,33,hwnd,(HMENU) 11000,(HINSTANCE)lParam,NULL);
hEdit=CreateWindow("edit",NULL,WS_CHILD|WS_VISIBLE|ES_NUMBER,50,50,40,60,hwnd,(HMENU)111,(HINSTANCE)lParam,NULL);
hout=CreateWindow("edit",NULL,WS_CHILD|WS_VISIBLE|ES_NUMBER,50,90,40,60,hwnd,(HMENU)121,(HINSTANCE)lParam,NULL);
break;
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ; //开始窗口绘制
GetClientRect (hwnd, &rect) ; //获取窗口客户区的尺寸
DrawText (hdc, TEXT ("Hello, 欢迎使用Turbo C for Windows 集成实验与学习环境!"), -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER) ; //显示文本串
EndPaint (hwnd, &ps) ; //结束窗口绘制
return 0 ;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case 11000:
int a,b;
a=GetDlgItemInt(hwnd,111,NULL,false);
b=a+a;
::SetDlgItemInt(hwnd,121,b,false);
break;
}
break;
case WM_DESTROY:
PostQuitMessage (0) ; //在消息队列中插入一条“退出”消息
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam);//执行默认的消息处理
}
#include <windows.h>
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 wndclass ; //窗口类结构
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (hInstance, "ab") ;//加载图标供程序使用
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; //加载鼠标指针供程序使用
HBRUSH Brush=CreatePatternBrush(LoadBitmap(hInstance,"OK"));
wndclass.hbrBackground = Brush;// (HBRUSH) GetStockObject (WHITE_BRUSH) ;//获取一个图形对象,在这个例子中,是获取绘制窗口背景的刷子
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = szAppName ;
if (!RegisterClass (&wndclass))//为程序窗口注册窗口类
{
return 0 ;
}
//根据窗口类创建一个窗口
hwnd = CreateWindow (szAppName,
TEXT ("第一"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL) ;
ShowWindow (hwnd, iCmdShow) ; //在屏幕上显示窗口
UpdateWindow (hwnd) ; //指示窗口刷新自身
// HDC hdc=GetDC(hwnd);
// PaintDesktop(hdc);
//ReleaseDC(hwnd,hdc);//*
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 ;
PAINTSTRUCT ps ;
RECT rect ;
static HWND hBtn;
static HWND hEdit;
static HWND hout;
switch (message)
{
case WM_CREATE:
hBtn=CreateWindow("button","确定",WS_CHILD|WS_VISIBLE,0,0,111,33,hwnd,(HMENU) 11000,(HINSTANCE)lParam,NULL);
hEdit=CreateWindow("edit",NULL,WS_CHILD|WS_VISIBLE|ES_NUMBER,50,50,40,60,hwnd,(HMENU)111,(HINSTANCE)lParam,NULL);
hout=CreateWindow("edit",NULL,WS_CHILD|WS_VISIBLE|ES_NUMBER,50,90,40,60,hwnd,(HMENU)121,(HINSTANCE)lParam,NULL);
break;
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ; //开始窗口绘制
GetClientRect (hwnd, &rect) ; //获取窗口客户区的尺寸
DrawText (hdc, TEXT ("Hello, 欢迎使用Turbo C for Windows 集成实验与学习环境!"), -1, &rect,
DT_SINGLELINE | DT_CENTER | DT_VCENTER) ; //显示文本串
EndPaint (hwnd, &ps) ; //结束窗口绘制
return 0 ;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case 11000:
int a,b;
a=GetDlgItemInt(hwnd,111,NULL,false);
b=a+a;
::SetDlgItemInt(hwnd,121,b,false);
break;
}
break;
case WM_DESTROY:
PostQuitMessage (0) ; //在消息队列中插入一条“退出”消息
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam);//执行默认的消息处理
}