鱼C论坛

 找回密码
 立即注册
查看: 3888|回复: 41

[技术交流] SDK简单的登录界面制作(菜鸟作品)—— 小仙会逐步完善 请大家指点下

[复制链接]
发表于 2014-11-16 17:50:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <Windows.h>

HINSTANCE g_hInstance;
HWND hChild, DengLu;

LRESULT CALLBACK WndProc(HWND hWnd,
                         UINT uMsg,
                         WPARAM wParam,
                         LPARAM lParam);

LRESULT CALLBACK ChildProc(HWND hWnd,
                           UINT uMsg,
                           WPARAM wParam,
                           LPARAM lParam);

void RegisterWnd(LPCTSTR lpClassName,UINT Style,WNDPROC proc)
{
    WNDCLASSEX wce;
    wce.style = Style;
    wce.lpfnWndProc = proc;
    wce.cbSize = sizeof(WNDCLASSEX);
    wce.cbClsExtra = 0;
    wce.cbWndExtra = 0;
    wce.hInstance = g_hInstance;
    wce.hIcon  = 0;
    wce.hCursor = 0;
    wce.hIconSm = 0;
    wce.hbrBackground = HBRUSH(COLOR_BTNFACE + 1);
    wce.lpszClassName = lpClassName;
    wce.lpszMenuName = 0;
    if(!RegisterClassEx(&wce))
    {
        MessageBox(NULL,TEXT("注册失败"),TEXT("提示"),MB_OK);
    }

}

HWND CreateWnd(LPCTSTR lpClassName,LPCTSTR name,DWORD Style,HWND hParent)
{
    HWND hWnd = CreateWindowEx(0,lpClassName,name,
        Style,CW_USEDEFAULT,CW_USEDEFAULT,
        CW_USEDEFAULT,CW_USEDEFAULT,hParent,NULL,g_hInstance,NULL);

    return hWnd;
}

void DisplayWnd(HWND hWnd)
{
    ShowWindow(hWnd,SW_SHOW);
    UpdateWindow(hWnd);
}

void Message()
{
    MSG msg;
    while(GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
}

int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR     lpCmdLine,
                   int       nCmdShow)
{
    g_hInstance = hInstance;

    RegisterWnd(L"denglu",CS_HREDRAW|CS_VREDRAW,WndProc);
    DengLu = CreateWnd(L"denglu",TEXT("登录"),WS_OVERLAPPED|WS_SYSMENU,NULL);
    MoveWindow(DengLu,600,300,280,160,TRUE);
    DisplayWnd(DengLu);

    RegisterWnd(L"Child",CS_HREDRAW|CS_VREDRAW,ChildProc);
    
    Message();

    return 0;
}

LRESULT CALLBACK WndProc(HWND hWnd,
                         UINT uMsg,
                         WPARAM wParam,
                         LPARAM lParam)
{
    switch(uMsg)
    {
    case WM_CREATE:
        {
            CreateWindowEx(WS_EX_CLIENTEDGE,TEXT("EDIT"),TEXT("bbs.fishc.com"),
                WS_CHILD|WS_VISIBLE,40,20,200,30,hWnd,HMENU(1001),g_hInstance,NULL);

            CreateWindowEx(WS_EX_CLIENTEDGE,TEXT("BUTTON"),TEXT("登录"),
                WS_CHILD|WS_VISIBLE,40,80,200,30,hWnd,HMENU(1002),g_hInstance,NULL);

            ShowWindow(hWnd,SW_SHOW);
            break;
        }
    case WM_COMMAND:
        {
            switch(wParam)
            {
            case 1002:
                {
                    hChild = CreateWnd(L"Child",TEXT("窗口风格管理"),WS_OVERLAPPED|WS_SYSMENU,DengLu);
                    MoveWindow(hChild,500,300,500,300,TRUE);
                    DisplayWnd(hChild);
                    break;
                }
             }

        }
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    }
    return DefWindowProc(hWnd,uMsg,wParam,lParam);
}

LRESULT CALLBACK ChildProc(HWND hWnd,
                           UINT uMsg,
                           WPARAM wParam,
                           LPARAM lParam)
{
    switch(uMsg)
    {
    case WM_CREATE:
        {
            ShowWindow(DengLu,SW_HIDE);
        }
    case WM_SYSCOMMAND:
        {
            switch(wParam)
            {
            case SC_CLOSE:
                {
                    ShowWindow(DengLu,SW_SHOW);
                    break;
                }
            }
        }
        break;
    }
    return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
回帖是一种美德,让我们拥有这种美德~
登录.jpg

评分

参与人数 13荣誉 +127 鱼币 +127 贡献 +75 收起 理由
freeparty + 10 + 10 + 10 感谢楼主无私奉献!
漠水 + 5 + 5 + 3 支持楼主!
沉思的牛 + 2 + 2 + 1 小仙小仙支持你!!
风之残月 + 5 + 5 + 5 支持楼主!
康小泡 + 5 + 5 + 5 支持楼主!
青玄 + 10 + 10 + 10 ^_^ 小仙!继续努力!
大黑鱼 + 30 + 30 + 10 不犹豫!支持
chishubiao + 5 + 5 + 5 支持楼主!
百日维新 + 30 + 30 + 10
machimilk + 2 大胆尝试,敢于面对挫折

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-11-16 17:52:38 | 显示全部楼层

改进后....

本帖最后由 拈花小仙 于 2014-11-16 21:32 编辑
#include <Windows.h>

HINSTANCE g_hInstance;
HWND hChild, DengLu;
HWND hWndEdit;//这个变量接收编辑框的hwnd用来获取内容用的
//获取内容用getwindowtext比getdlgitemtext省事

LRESULT CALLBACK WndProc(HWND hWnd,
                                                 UINT uMsg,
                                                 WPARAM wParam,
                                                 LPARAM lParam);

LRESULT CALLBACK ChildProc(HWND hWnd,
                                                   UINT uMsg,
                                                   WPARAM wParam,
                                                   LPARAM lParam);

void RegisterWnd(LPCTSTR lpClassName,UINT Style,WNDPROC proc)
{
        WNDCLASSEX wce;
        wce.style = Style;
        wce.lpfnWndProc = proc;
        wce.cbSize = sizeof(WNDCLASSEX);
        wce.cbClsExtra = 0;
        wce.cbWndExtra = 0;
        wce.hInstance = g_hInstance;
        wce.hIcon  = 0;
        wce.hCursor = 0;
        wce.hIconSm = 0;
        wce.hbrBackground = HBRUSH(COLOR_BTNFACE + 1);
        wce.lpszClassName = lpClassName;
        wce.lpszMenuName = 0;
        if(!RegisterClassEx(&wce))
        {
                MessageBox(NULL,TEXT("注册失败"),TEXT("提示"),MB_OK);
        }

}

HWND CreateWnd(LPCTSTR lpClassName,LPCTSTR name,DWORD Style,HWND hParent)
{
        HWND hWnd = CreateWindowEx(0,lpClassName,name,
                Style,CW_USEDEFAULT,CW_USEDEFAULT,
                CW_USEDEFAULT,CW_USEDEFAULT,hParent,NULL,g_hInstance,NULL);

        return hWnd;
}

void DisplayWnd(HWND hWnd)
{
        ShowWindow(hWnd,SW_SHOW);
        UpdateWindow(hWnd);
}

void Message()
{
        MSG msg;
        while(GetMessage(&msg,NULL,0,0))
        {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
        }
}

int WINAPI WinMain(HINSTANCE hInstance,
                                   HINSTANCE hPrevInstance,
                                   LPSTR     lpCmdLine,
                                   int       nCmdShow)
{
        g_hInstance = hInstance;

        RegisterWnd(L"denglu",CS_HREDRAW|CS_VREDRAW,WndProc);
        DengLu = CreateWnd(L"denglu",TEXT("登录"),WS_OVERLAPPED|WS_SYSMENU,NULL);
        MoveWindow(DengLu,600,300,280,160,TRUE);
        DisplayWnd(DengLu);

        RegisterWnd(L"Child",CS_HREDRAW|CS_VREDRAW,ChildProc);

        Message();

        return 0;
}

LRESULT CALLBACK WndProc(HWND hWnd,
                                                 UINT uMsg,
                                                 WPARAM wParam,
                                                 LPARAM lParam)
{
        switch(uMsg)
        {
        case WM_CREATE:
                {
                        hWndEdit = CreateWindowExW(WS_EX_CLIENTEDGE,TEXT("EDIT"),TEXT("bbs.fishc.com"),
                                WS_CHILD|WS_VISIBLE,40,20,200,30,hWnd,HMENU(1001),g_hInstance,NULL);

                        CreateWindowEx(WS_EX_CLIENTEDGE,TEXT("BUTTON"),TEXT("登录"),
                                WS_CHILD|WS_VISIBLE,40,80,200,30,hWnd,HMENU(1002),g_hInstance,NULL);

                        ShowWindow(hWnd,SW_SHOW);
                        break;
                }
        case WM_COMMAND:
                {
                        switch(wParam)
                        {
                        case 1002:
                                {
                                        TCHAR szText[100];
                                        GetWindowText(hWndEdit,szText,-1);

                                        if(lstrcmp(szText,TEXT("bbs.fishc.com"))!=0)//输入和预置的不对应
                                                return 0;//就返回
                                        //正确就执行下面
                                                MessageBox(NULL,TEXT("输入正确,可以登录"),TEXT("Go"),MB_OK|MB_ICONINFORMATION);
                                        hChild = CreateWnd(L"Child",TEXT("窗口风格管理"),WS_OVERLAPPED|WS_SYSMENU,DengLu);
                                        MoveWindow(hChild,500,300,500,300,TRUE);
                                        DisplayWnd(hChild);
                                        
                                }
                        }
                        break;//你这里忘了写break

                }
                
        case WM_DESTROY:
                PostQuitMessage(0);
                return 0;
        }
        return DefWindowProc(hWnd,uMsg,wParam,lParam);
}

LRESULT CALLBACK ChildProc(HWND hWnd,
                                                   UINT uMsg,
                                                   WPARAM wParam,
                                                   LPARAM lParam)
{
        switch(uMsg)
        {
        case WM_MOUSEWHEEL:
                {
            RECT rc,rc1;//rc获得窗口相对于桌面的矩形    rc1要调整的矩形     
            GetWindowRect(hWnd,&rc);
                        rc1=rc;//调整用的矩形先弄的和窗口矩形一样大

            if((int)wParam<0)  //往下滚轮,让窗口扩大
            {
                                rc1.right=rc.right-rc.left +10;
                                rc1.bottom=rc.bottom-rc.top+10;
            }
            else
            {
                                rc1.right=rc.right-rc.left-10;
                                rc1.bottom=rc.bottom-rc.top-10;
            }
                 MoveWindow(hWnd,rc1.left, rc1.top,rc1.right,rc1.bottom,TRUE); 
            break;
        }

        case WM_CREATE:
                {
                        ShowWindow(DengLu,SW_HIDE);
                        break;
                }
        case WM_SYSCOMMAND:
                {
                        switch(wParam)
                        {
                        case SC_CLOSE:
                                {
                                        ShowWindow(DengLu,SW_SHOW);
                                        break;
                                }
                        }
                }
                break;
        }
        return DefWindowProc(hWnd,uMsg,wParam,lParam);
}

评分

参与人数 2荣誉 +40 鱼币 +36 收起 理由
freeparty + 30 + 30 怎么老是没有贡献值。
Angel丶L + 10 + 6 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2014-11-16 17:54:50 | 显示全部楼层
来看看支持下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-16 18:06:32 | 显示全部楼层
仙仙,代码报错咯~
QQ拼音截图未命名.png

另外,为什么不上传exe文件呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-16 18:07:15 | 显示全部楼层
c的痛苦之处  ,写个窗口 代码太多  ,不过学了很有用
学会API 在学mfc
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-16 18:13:03 | 显示全部楼层
~风介~ 发表于 2014-11-16 18:06
仙仙,代码报错咯~

不清楚啦,我这里运行的很好呀,这里又没显示建错项目,555~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-16 18:13:51 | 显示全部楼层
小人 发表于 2014-11-16 18:07
c的痛苦之处  ,写个窗口 代码太多  ,不过学了很有用
学会API 在学mfc

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-16 18:18:47 | 显示全部楼层
拈花小仙 发表于 2014-11-16 18:13
不清楚啦,我这里运行的很好呀,这里又没显示建错项目,555~

那就把exe文件穿给介介看看吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-16 18:21:50 | 显示全部楼层
~风介~ 发表于 2014-11-16 18:18
那就把exe文件穿给介介看看吧~

WindowStyle.zip (4.97 KB, 下载次数: 18)
嘻嘻,虽然有点菜啦,但是仙仙花了一下午时间写的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-16 18:22:49 | 显示全部楼层
~风介~ 发表于 2014-11-16 18:18
那就把exe文件穿给介介看看吧~

窗口.jpg
介介建的是这个吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-16 18:29:53 | 显示全部楼层
小人 发表于 2014-11-16 18:07
c的痛苦之处  ,写个窗口 代码太多  ,不过学了很有用
学会API 在学mfc

还是做不出来,唉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-16 18:32:47 | 显示全部楼层

比我牛多了  ,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-16 18:37:02 | 显示全部楼层
小人 发表于 2014-11-16 18:32
比我牛多了  ,

我查了下两个函数都能实现,我只能按楼层给了,以后多答题呀。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-16 18:41:57 | 显示全部楼层
拈花小仙 发表于 2014-11-16 10:37
我查了下两个函数都能实现,我只能按楼层给了,以后多答题呀。

没事  ,我帮助别人的同时 也给自己涨姿势 多接触 加深印象
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-16 18:43:46 | 显示全部楼层
拈花小仙 发表于 2014-11-16 18:21
嘻嘻,虽然有点菜啦,但是仙仙花了一下午时间写的

怎么会!介介都看不懂~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-16 18:44:50 | 显示全部楼层
拈花小仙 发表于 2014-11-16 18:22
介介建的是这个吗?

没错哟!哈哈~待我有时间慢慢查bug~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-16 18:45:13 | 显示全部楼层
~风介~ 发表于 2014-11-16 18:43
怎么会!介介都看不懂~

介介会QT,学这个半个月因该就会了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-11-16 18:47:18 | 显示全部楼层
~风介~ 发表于 2014-11-16 18:44
没错哟!哈哈~待我有时间慢慢查bug~

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-16 18:47:38 | 显示全部楼层
楼主好样的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-11-16 20:00:55 | 显示全部楼层
{:1_1:},,支持呵呵。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 22:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表