我用C/SDK编WIN32程序,可是做不出工具栏来。
为了测试,我直接用向导生成了一个WIN32程序,然后才CreateWindow后面,
添加了如下代码:
hwndTB = CreateWindowEx(0, TOOLBARCLASSNAME, (LPSTR) NULL, 
        WS_CHILD | CCS_ADJUSTABLE, 0, 0, 0, 0, hWnd, 
        (HMENU) ID_TOOLBAR, hInst, NULL);
基本就是从MSDN上复制下来的。只是改了hwndParent和g_hinst两个参数。
编译能通过,可是测试下来,发现hwndTB总是等于0(即CreateWindowEx函数
失败)实在不知道问题出在哪里,请大家帮忙~
PS:MSDN上本来还要求用InitCommonControlsEx(&icex),但是我的是WIN XP,
不支持这个函数,因此跳过了这一步,应该没什么问题吧?持续等待中...

解决方案 »

  1.   

    用GetLastError看一下到底是什么错误
      

  2.   

    原因可能就是你没有调用
    InitcommonControlEx();XP为什么不支持此函数?此函数的要求只是:Requirements 
      Version 4.70 and later of Comctl32.dll  Windows NT/2000: Requires Windows 2000 (or Windows NT 4.0 with Internet Explorer 3.0 and later). 
      Windows 95/98: Requires Windows 98 (or Windows 95 with Internet Explorer 3.0 or later). 
      Windows CE: Requires version 2.0 or later. 
      Header: Declared in commctrl.h. 
      Import Library: comctl32.lib.
      

  3.   

    你的ToolBar存在的问题:
    1。不要使用CreateWindowEx,而使用CreateToolbarEx()(详细的,看MSDN);
    2。我也用XP,但是没有发生InitCommonControlsEx(&icex)问题,如果该问题实在不能解决,就使用InitCommonControls(),总之,InitCommonControls这个东西没有执行,是要出问题的。对了,你说它有问题,是不是你没有把comctl32.lib加入工程中;
    3。我从来不用MFC,只用SDK,我的程序早就实现了ToolBar,而且还使用了其很多新风格,如果你检查后还有问题,就把你的关键代码贴上来,或者我再贴代码。
      

  4.   

    用GetLastError得到的错误代码是1400,查了一下,应该是
    返回窗口句柄为0,也就是CreateWindowEx返回了0。
    InitcommonControlEx()的调用,编译通过,关键是连接
    时不能通过。用CreateToolbarEx()同样是连接时不能通过。
    <commctrl.h>我也include了,应该没问题。
    我用的是.net,直接把MSDN的ToolBar Sample Code建立
    项目也是连接不能通过。
    真的快疯了...
    捆扰了我好多天了。
    本来可以自己建个子窗口,放上BUTTON来模拟做个工具栏,
    但是这个问题不解决,心里实在难受的很,总是放不下...
    谢谢大家帮我查查原因是什么吧...
      

  5.   

    TO  huangbeyond(校园人渣)。
    一语惊醒梦中人...
    可能我真的没把comctl32.lib加入到工程中去。
    为了这问题,MFC代码我都跟踪了。发现它用的也是
    CreateWindowEx。
    不过在.net里,怎么把comctl32.lib加入到工程啊?
    好象没有“Project/Setting...”菜单了~
    谢谢你能留下QQ或者Email吗?
    我的QQ2439216
    Email:[email protected]
      

  6.   

    OK,问题圆满解决。谢谢huangbeyond(校园人渣),果然是
    comctl32.lib没加载...(好难为情,脸都红了~)
    原来.net的项目设置在解决方案的属性对话框中~
    呵呵,害我找好久~