int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, INT);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);我建立了一个窗体,用了以上两个函数,,但WinMain 好像从来都不调用 WndProc 谁能详细的说说谢谢

解决方案 »

  1.   

    1.
    WNDCLASS
    RegisterClassEx // 指定窗口函数
    CreateWindow/CreateWindowEx
    ShowWindow
    UpdateWindow
    消息循环。。
      

  2.   

    呵呵。我记得书上说是“回调函数”,即程序自己从来不调用,由"系统"来调用。这就是写CALLBACK关键字的原因吧?再找点书仔细看看。《Windows程式设计》上应该说了。
      

  3.   

    果然小问题,我是初学者都知道。倒是把上面几位认为是写错代码了……这段很复杂,要仔细看才能懂。不然就多找几本书来看懂这个“First Windows Program”。
    《Windows程序设计》和《深入浅出MFC》都有这部分内容。
      

  4.   

    不是自己悄悄的定义了函数就行的,还要告诉Windows你定义了这个函数。
      

  5.   

    WNDCLASS
    RegisterClassEx // 指定窗口函数
    CreateWindow/CreateWindowEx
    ShowWindow
    UpdateWindow
    消息循环。。我不是说了吗!!在RegisterClassEx中注册窗口类的时候就指定窗口的窗口函数了!!!
      

  6.   

    第二个函数是一个窗口回调函数,
    function WinRegister:Boolean;   //注册窗口类函数
    var WindowClass:Wndclass;         //定义窗口类
    begin
    WindowClass.style:=cs_hRedraw or cs_vRedraw;
    WindowClass.lpfnWndproc:=TFNdProc(@WindowProc);   //这里传递了窗口回调函数的入口地址
    .....
    ....
    Result:=RegisterClass(WindowClass)<>0;   //注册
    end;具体很多讲API编程的书籍上都有