标题:怎么做出图形界面程序(非Dos界面),求助
只看楼主
windyfzz
Rank: 2
等 级:禁止访问
帖 子:90
专家分:12
注 册:2010-7-25
结帖率:68%
已结贴  问题点数:20 回复次数:4 
怎么做出图形界面程序(非Dos界面),求助
各位好,我学了1年多的C++了,C++几处已掌握的差不多了。可我现在编的都是些Dos界面的程序,我想做出有图形界面的软件,应该怎么做。
别人告诉我用MFC,可我对MFC没有任何概念,很想找个人帮我从MFC基础学起。
能推荐一些有关资料吗,不过最好有人可以手把手交我!
                        我的QQ 301058444     真诚的        感谢!
搜索更多相关主题的帖子: Dos 图形 界面 
2010-07-26 16:24
红色警戒
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:19
帖 子:444
专家分:2967
注 册:2005-11-20
得分:5 
去买本书比这上面的例子做做。

2010-07-26 19:42
东海一鱼
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:48
帖 子:757
专家分:4760
注 册:2009-8-10
得分:5 
建议楼主先看看windows SDK编程,最起码搞清楚消息、消息处理函数、绘图上下文环境、画笔、画刷的这些基本概念后再去看MFC,
不然你会一头雾水,即便是照着例子做出来了。合上书本,你依旧什莫都不会。建议看看网上广为流传的“孙鑫VC++”视频,个人
感觉他的教学知识点组织得很好。

举世而誉之而不加劝,举世而非之而不加沮,定乎内外之分,辩乎荣辱之境,斯已矣。彼其于世未数数然也。
2010-07-27 09:20
前世是仙
Rank: 2
等 级:论坛游民
帖 子:14
专家分:18
注 册:2010-7-28
得分:10 
windows编程产生窗口的最基本流程
1.注册窗口 主要填充 窗口类 WNDCLASSEX 注册函数 RegisterClassEx()
2.创建窗口 主要函数 CreateWindowEx()
3.显示窗口    ShowWindow()
4.更新窗口    UpdateWindow(hwnd)
5.消息循环
只需要windows.h函数库 是最底层的窗口实现方法 结构简单 利于新手学习 但是代码量大 不适用于项目
简单窗口例子
#include<windows.h>
//消息处理函数声明
LRESULT CALLBACK MainWndProc(
                             HWND hwnd,
                             UINT uMsg,
                             WPARAM wParam,
                             LPARAM lParam);
//主函数
INT WINAPI WinMain(HINSTANCE hinstance,
                     HINSTANCE hPrevInstance,
                     LPSTR lpCmdLine,
                     int nCmdShow)
{
    WNDCLASSEX wcx;
    HWND hwnd;
    MSG msg;
    BOOL fGotMessage;
    HWND hwndCap = NULL;

    // 注册窗口类,并创建窗口,用于显示截取的位图
    wcx.cbSize = sizeof(wcx);
    wcx.style = CS_HREDRAW | CS_VREDRAW;
    wcx.lpfnWndProc = MainWndProc;
    wcx.cbClsExtra = 0;
    wcx.cbWndExtra = 0;
    wcx.hInstance = hinstance;
    wcx.hIcon = LoadIcon(NULL,    MAKEINTRESOURCE(IDI_APPLICATION));
    wcx.hCursor = LoadCursor(NULL,    IDC_ARROW);
    wcx.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    wcx.lpszMenuName = NULL;
    wcx.lpszClassName = "MainWClass";
    wcx.hIconSm = NULL;

    if( !RegisterClassEx(&wcx))
        return 1;
    // 创建窗口
    hwnd = CreateWindow(
        "MainWClass",
        "TEST",
        WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS |
        WS_MAXIMIZE | WS_POPUPWINDOW,
        100,
        100,
        200,
        200,
        (HWND) NULL,    (HMENU) NULL,    hinstance, (LPVOID) NULL);

    if (!hwnd)
        return 1;

     //显示窗口
    ShowWindow(hwnd, nCmdShow);
    //更新窗口
    UpdateWindow(hwnd);
    //消息循环
    while ((fGotMessage = GetMessage(&msg, (HWND) NULL, 0, 0)) != 0 && fGotMessage != -1)
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
    UNREFERENCED_PARAMETER(lpCmdLine);
}

LRESULT CALLBACK MainWndProc(
                             HWND hwnd,
                             UINT uMsg,
                             WPARAM wParam,
                             LPARAM lParam)
{
    switch (uMsg)
    {
    case WM_PAINT:

        break;
    case WM_DESTROY:

        ExitProcess(0);
        break;
    default:
        break;
    }
    return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
建议新手看<<windows API>> 接触一下系统各个方面的编程
再去学习MFC 因为MFC结构不像main()函数那样清晰 不容易上手
2010-07-28 15:46
shanyue198
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2010-7-28
得分:0 
多上网查查别人的做法
2010-08-03 23:25



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-313997-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.388927 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved