回 帖 发 新 帖 刷新版面

主题:求助!!!!!!!!!!!!!

我想在按钮上着色或用图片代替按钮,我该怎么办,下面是一段按钮没着色的代码
#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);//执行默认的消息处理
}

回复列表 (共2个回复)

沙发

用MFC吧。
SDK有点写代码太累了

板凳

寻找一直寻找机会的人!
一个趋势中的趋势的项目!
一个直销和传销终结者的项目!
一个帮助普通创业者成功的项目!
   我们在互联网上正在拓展一个生意项目,现在正在寻求合作伙伴。我们认为成功的关键是你是什么人?还有你和谁在一起。我们在乎的是--您是否是有激情、有梦想的人。有意者请跟我们联系,我们和您谈谈,给您讲解一些生意概念,或许我们可以合作。一个集即时网游、交友,娱乐游戏,网络品牌代理商城,互联网平台项目招商进行中……详情QQ空间资料
网商咨询 摩客天宇QQ 909065437 

我来回复

您尚未登录,请登录后再回复。点此登录或注册