首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

小弟我尊敬的程序员大哥大姐们,帮小弟我看看这道C++题目吧,VC方面的

2012-03-25 
我尊敬的程序员大哥大姐们,帮我看看这道C++题目吧,VC方面的我的状态栏没有出来,可以编译的过,不知道问题出

我尊敬的程序员大哥大姐们,帮我看看这道C++题目吧,VC方面的
我的状态栏没有出来,可以编译的过,不知道问题出在什么地方,下面是我的代码
#include <windows.h>
#include <strsafe.h>
#include <Commctrl.h>
#include "resource.h "
LRESULT   CALLBACK   WndProc
(   HWND   hwnd,
  UINT   uMsg,
  WPARAM   wParam,
  LPARAM   lParam
  );
int   WINAPI   WinMain(HINSTANCE   hInstance,
      HINSTANCE   hPrevInstance,
      LPSTR   lpCmdLine,
      int   nCmdShow
      )
{
WNDCLASS   wc;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hbrBackground=(HBRUSH)::GetStockObject(COLOR_BTNFACE);
wc.hCursor=::LoadCursor(NULL,IDC_ARROW);
wc.hInstance=hInstance;
wc.lpfnWndProc=WndProc;
wc.lpszClassName=TEXT( "Draw ");
wc.lpszMenuName=NULL;
wc.hIcon   =   LoadIcon   (NULL,IDI_APPLICATION);
wc.style=CS_HREDRAW   |   CS_VREDRAW;
if(!RegisterClass(&wc))
{
::MessageBox(NULL,TEXT( "窗口注册失败 "),TEXT( "提示 "),MB_OK);
}
HWND   hwnd=::CreateWindow(TEXT( "Draw "),TEXT( "API "),WS_OVERLAPPEDWINDOW   ,
                                                CW_USEDEFAULT,   CW_USEDEFAULT,
                                                  CW_USEDEFAULT,   CW_USEDEFAULT,
                                                NULL,   NULL,   hInstance,   NULL)   ;

::ShowWindow(hwnd,SW_SHOW);
::UpdateWindow(hwnd);
MSG   msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage   (&msg)   ;
DispatchMessage   (&msg)   ;
}
return   msg.wParam;
}
LRESULT   CALLBACK   WndProc
(   HWND   hwnd,
  UINT   uMsg,
  WPARAM   wParam,
  LPARAM   lParam
  )
{
HDC   hdc;
PAINTSTRUCT   ps;
HWND   hwndTB;
TBBUTTON   tbb;
char   szBuf[16]= "剪贴 ";
int   iCut;
switch(uMsg)
{
case   WM_CREATE:
hwndTB=CreateWindowEx(0,   TOOLBARCLASSNAME,   (LPSTR)   NULL,  
WS_CHILD   |   CCS_ADJUSTABLE   |   WS_VISIBLE,   0,   0,   0,   0,   hwnd,  
(HMENU)   ID_TOOLBAR,   NULL,   NULL);  
iCut   =   SendMessage(hwndTB,   TB_ADDSTRING,   0,   (LPARAM)   (LPSTR)   szBuf);  
tbb.iBitmap   =   I_IMAGENONE;  
tbb.idCommand   =   IDS_CUT;  
tbb.fsState   =   TBSTATE_ENABLED;  
tbb.fsStyle   =   BTNS_BUTTON;  
tbb.dwData   =   0;  
tbb.iString   =   iCut;  
      SendMessage(hwndTB,   TB_ADDBUTTONS,   (WPARAM)   1,  
                (LPARAM)   (LPTBBUTTON)   &tbb);  
return   0;
case   WM_PAINT:
hdc=BeginPaint(hwnd,&ps);
::EndPaint(hwnd,&ps);
return   0;


case   WM_DESTROY:
PostQuitMessage(0);
return   0;
default:
return   ::DefWindowProc(hwnd,uMsg,wParam,lParam);
}
}


[解决办法]
-_-

有时间看看吧
[解决办法]
@.@
too long
[解决办法]
@!@

确实太长
[解决办法]
好象是因为找不到TOOLBARCLASSNAME的注册定义,需先初始化CommonCtrls.
修改方法:
在 "case WM_CREATE: " 和 "hwndTB=CreateWindowEx(.. "之间加入下面几句:

INITCOMMONCONTROLSEX icx;
icx.dwSize = sizeof(INITCOMMONCONTROLSEX);
icx.dwICC = ICC_BAR_CLASSES;
InitCommonControlsEx(&icx);

另外,别忘了链接时要加上库comctl32.lib


[解决办法]
问题在:CreateWindowEx(0, TOOLBARCLASSNAME, (LPSTR) NULL,
WS_CHILD | CCS_ADJUSTABLE | WS_VISIBLE, 0, 0, 0, 0, hwnd,
(HMENU) ID_TOOLBAR, NULL, NULL);
起点是(0,0),长宽也都是0??

热点排行