别骂我脑残,新手。
请问,VC在哪写自己的代码?
我就看到界面的,不知道在哪些自己的,
对于从程序开始时运行到程序结束使的代码应该放哪?多线程?
还有按钮有事件吗?
总之就是自己代码往哪加,谢了。

解决方案 »

  1.   

    先了解WINDOWS的消息机制,知道一个窗口的基本运行框架.
      

  2.   

    WINDOWS的消息机制我大概了解,就是想问,主线程进入消息循环了,是不是就不能执行其他的了?
      

  3.   

    MFC是不是都是多线程的,好像一般都是在窗口响应消息的那个过程中执行的
      

  4.   

    这哪问的出来啊,cpp,h里写代码啊,过于基础的知识自己去学比来这问快的多了
      

  5.   

    楼主建个简单工程,选择Win32 Application,再选择A sample win32 application生成的工程只有:
    // WinApp1.cpp : Defines the entry point for the application.
    //#include "stdafx.h"int APIENTRY WinMain(HINSTANCE hInstance,
                         HINSTANCE hPrevInstance,
                         LPSTR     lpCmdLine,
                         int       nCmdShow)
    {
      // TODO: Place code here. return 0;
    }海阔天空任君写!
      

  6.   


    我靠哦,你连哪里写代码都不晓得,给你代码你不是更加看不懂?你说的VC肯定是指MFC,这框架有许多东西IDE会给你自动添加,我也是这么过来的,你自己找本书编个对话框,拖个按钮,双击进去写点功能,点点就知道了,比你在这里墨迹快多了,楼主勤快点啊,看着都着急
      

  7.   


    以下就是最典型的代码,仅供参考:// Win32App3.cpp : Defines the entry point for the console application.
    //#include "stdafx.h"int main(int argc, char* argv[])
    {
    printf("我是老大我发飙!\n");
    return 0;
    }
      

  8.   

    随便找本vc练一下,就知道怎么加代码啦,但是要熟悉,还有一段路!还在摸索。
    支持LZ
      

  9.   

    谢谢大家给的资料,在看了,还是要看书才会。我想问的那个不是MFC,我自己搞错了,应该是Win32项目,就是要自己画界面的那个。最后一个请求,能不能给我个例子看看.
      

  10.   

    是不是一般都在WndProc过程里根据消息来写代码,比如case WM_KEYDOWN:之类的,或者多线程?
      

  11.   

    #include "stdio.h"
    #include "windows.h"LRESULT CALLBACK wndproc(
                             HWND hwnd,
                             UINT uMsg,
                             WPARAM wParam,
                             LPARAM lParam
                             );
    HINSTANCE hInstance; class win
    {
    public:
        BOOL W_class();
        BOOL create();
    };
    BOOL win::W_class()
    {
    WNDCLASS wdnclass;//设计窗口
        wdnclass.style=CS_HREDRAW|CS_VREDRAW;;//窗口
        wdnclass.lpfnWndProc=wndproc;//窗口指针很重要
        wdnclass.cbClsExtra=0;//通常为0
        wdnclass.cbWndExtra=0;//通常为0
        wdnclass.hInstance=hInstance;//句柄
        wdnclass.hIcon=LoadIcon(NULL,IDI_ERROR);//图标句柄
        wdnclass.hCursor=LoadCursor(NULL,IDC_CROSS);//光标句柄
        wdnclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//背色句柄
        wdnclass.lpszMenuName=NULL;
        wdnclass.lpszClassName="zhuzi";//类的名字      return (RegisterClass(&wdnclass));//注册窗口
    }BOOL win::create()
    {    
        HWND hwnd;
        hwnd=CreateWindow("zhuzi","猪",WS_OVERLAPPEDWINDOW,
            200,200,600,400,NULL,NULL,
         hInstance,NULL);
        //显示窗口
        ShowWindow(hwnd,SW_SHOWNORMAL);
        UpdateWindow(hwnd);
        return hwnd;
    }
    int WINAPI WinMain(
      HINSTANCE hInstance,      // handle to current instance
      HINSTANCE hPrevInstance,  // handle to previous instance
      LPSTR lpCmdLine,          // command line
      int nCmdShow              // show state
    )
    {
        win window
        if(!window.W_class())
            return 0;
        if(!window.create())
            return 0;
        
        //消息循环
        MSG msg;
        while(GetMessage(&msg,NULL,0,0))
        {
            TranslateMessage(&msg);//接收消息
            DispatchMessage(&msg);//将接收的消息处理
        }
        return 0;
    }//过程函数
    LRESULT CALLBACK wndproc(
                             HWND hwnd,
                             UINT uMsg,
                             WPARAM wParam,
                             LPARAM lParam
                             )
    {
        HDC hdc;
        PAINTSTRUCT ps;
        switch(uMsg)
        {
        case WM_PAINT:
            hdc=BeginPaint(hwnd,&ps);
            TextOut(hdc,0,0,"猪",strlen("猪"));
            EndPaint(hwnd,&ps);
            break;
        case WM_CHAR:
            char szchar[20];
            sprintf(szchar,"ch%d",wParam);
        MessageBox(hwnd,szchar,"zhuzi",MB_OK);
        break;
        case WM_LBUTTONDOWN:
            if(IDYES==MessageBox(hwnd,"猪编程","zhuzi",MB_YESNO))
            {
                HDC hDC;
            hDC=GetDC(hwnd);
            TextOut(hDC,150,150,"猪万岁",strlen("猪万岁"));
            ReleaseDC(hwnd,hDC);
            }
            break;
        case WM_CLOSE:
            if(IDYES==MessageBox(hwnd,"真的退出","zhuzi",MB_YESNO))
            {
                DestroyWindow(hwnd);
            }
            break;
        case WM_DESTROY:
            PostQuitMessage(0);
            break;
        default:
            return DefWindowProc(hwnd,uMsg,wParam,lParam);
            break;
        }
        return 0;