发新话题
打印

WIN32对话框代码如何写的好看,发现对话框一复杂,代码很难看

WIN32对话框代码如何写的好看,发现对话框一复杂,代码很难看

TOP

c + api 用 c compile 很好的

TOP

楼主刚学编程吧?
还是不要从C入门比较好
我到中年了。没有钱!怎么办?

TOP

引用:
原帖由 5bxb 于 2008-1-18 21:42 发表
楼主刚学编程吧?
还是不要从C入门比较好
为什么又要这么说?
奇怪,为什么要说“又”?
本人软件谢绝以下两种人士使用:
1.有种族歧视的人。
2.非洲黑人
3.不识数的人

TOP

用C++包装的话会好看很多,用C的却比较混乱了一些!
Free as in free speech, not as in free beer.
www.nill.cn

TOP

不用尺子写代码,很丑,很猥琐
走别人的路,让别人无路可走

TOP

基于代码生成的框架,写出来的代码都 难看,没办法。因为框架难看, 你还想怎么样?想用这个框架,就忍着。
恨号,恨呛大!!!

TOP

模块化就可以了,什么语言都有可能写出烂代码,看是谁用了。

TOP

x

static void _NEW();

void doNew()
{
        doClose();
        int ret = DialogBox(g_hInst, (LPCTSTR) IDD_NEW_PATH, g_hMain, (DLGPROC) NewPathBox);
        if (ret == IDOK) {
                ret = DialogBox(g_hInst, (LPCTSTR) IDD_NEW, g_hMain, (DLGPROC) NewBox);
                if (ret == IDOK) {
                        _NEW(); doOpen();
                }
        }
}

/////////////////////////////////////////////////////////////////////////////////////

#include "NEWPATH.INC"

LRESULT CALLBACK NewPathBox(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
        switch (message)
        {
                case WM_INITDIALOG:
                        _NEWPATH_INIT(hDlg);
                        return TRUE;
                case WM_COMMAND:
                        if (LOWORD(wParam) == IDOK) { _NEWPATH_OK(hDlg); return TRUE; }
                        if (LOWORD(wParam) == IDCANCEL) { EndDialog(hDlg, LOWORD(wParam)); return TRUE; }
                        if (LOWORD(wParam) == IDC_SET_DIRECTORY) { _NEWPATH_GET_DIRECTORY(hDlg); return TRUE; }
                        break;
        }
    return FALSE;
}
/////////////////////////////////////////////////////////////////////////////////////

static char INSERT_URL [MAX_URL];


#include "NEW.INC"

LRESULT CALLBACK NewBox(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
        switch (message)
        {
                case WM_INITDIALOG: _NEW_INIT(hDlg); return TRUE;
                case WM_VKEYTOITEM:
                        if (LOWORD(wParam) == VK_DELETE) { _NEW_DEL(hDlg); return -2; }
                        else return -1;
                case WM_COMMAND:
                        if (LOWORD(wParam) == IDC_DEL) { _NEW_DEL(hDlg); return TRUE; }
                        if (LOWORD(wParam) == IDC_DELALL) { _NEW_DELALL(hDlg); return TRUE; }
                        if (LOWORD(wParam) == IDC_INSERT) { _NEW_INSERT(hDlg); return TRUE; }
                        if (LOWORD(wParam) == IDC_IMPORT) { _NEW_IMPORT(hDlg); return TRUE; }
                        if (LOWORD(wParam) == IDOK) { _NEW_OK(hDlg); return TRUE; }
                        if (LOWORD(wParam) == IDCANCEL) { EndDialog(hDlg, LOWORD(wParam)); return TRUE; }
                        break;
        }
    return FALSE;
}

/////////////////////////////////////////////////////////////////////////////////////

#include "ADDR.INC"

LRESULT CALLBACK BoxAddr(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
        switch (message)
        {
                case WM_INITDIALOG: _ADDR_INIT(hDlg); return TRUE;
                case WM_COMMAND:
                        if (LOWORD(wParam) == IDOK) { _ADDR_OK (hDlg); return TRUE; }
                        if (LOWORD(wParam) == IDCANCEL) { EndDialog(hDlg, LOWORD(wParam)); return TRUE; }
                        break;
        }
    return FALSE;
}

/////////////////////////////////////////////////////////////////////////////////////

static void _NEW()
{
        char folder [MAX_PATH];
        char dst [MAX_PATH];
        char sys [MAX_PATH];
        char tmp [MAX_PATH];
        char pic [MAX_PATH];

        PathCombine(folder, g_directory, g_filename);
        PathCombine(sys, folder, "sys");
        PathCombine(tmp, folder, "tmp");
        PathCombine(pic, folder, "pic");

        CreateDirectory(folder, 0);
        CreateDirectory(sys, 0);
        CreateDirectory(tmp, 0);
        CreateDirectory(pic, 0);

        PathCombine(dst, folder, g_filename);
        lstrcat(dst, ".pdh");
        save_prop_general(dst);

        PathCombine(dst, folder, g_filename);
        lstrcat(dst, ".pdh.included");
        _close(_creat(dst, _S_IREAD | _S_IWRITE));

        PathCombine(dst, folder, g_filename);
        lstrcat(dst, ".pdh.excluded");
        _close(_creat(dst, _S_IREAD | _S_IWRITE));

        PathCombine(dst, folder, g_filename);
        lstrcat(dst, ".pdh.performance");
        g_nThread = DEFAULT_THREAD;
        g_nDownloadInterval = DEFAULT_DOWNLOAD_INTERVAL;
        save_prop_performance(dst);

        PathCombine(dst, sys, "his");
        This* his = new This(dst);

        char queue_name [20] = {0};
        sprintf(queue_name, "q_a_queued_%.3d", 0);
        PathCombine(dst, sys, queue_name);
        Tqueue* queue = new Tqueue(dst);

        list<string>::iterator pos = g_lst_url.begin();
        while (pos != g_lst_url.end()) {
                his->push_back((*pos).c_str());
                queue->push_back((*pos).c_str());
                pos++;
        }
        delete his;
        delete queue;
}

TOP

可以把窗口过程包装到类里面,这样才整洁
Free as in free speech, not as in free beer.
www.nill.cn

TOP

发新话题