您的位置: 旅游網 > 明星 >> 王俊凱

    實現清爽便利的游呢

    發布時間:2021-10-28 05:25:31

    因為最早做的一個游戲DEMO是全屏加上鼠標獨占,而且不能全屏/窗口切換,加上自己做的游戲又粗糙,感覺極為不爽。現在想想,其實當我玩游戲的時候,我是喜歡窗口化的,可以隨便拖動,這樣玩游戲的時候也可以兼做其他事情,而且鼠標一定不能獨占,最好是要放進去是個性化鼠標,移出來又是系統鼠標。如果要做這樣一個窗口,可以把以下這幾個地方改一下。

    先讓去生成一個Win32 Project,然后Application type就讓它是默認的Windows application. 如果愿意讓它是空項目然后自己寫那幾個主要函數也是可以的。

    第一個要改動的是窗口位置,我希望它剛出來就在屏幕的中央,是800*600的窗口。

    在InitInstance()函數里的CreateWindow()函數之后加這么一句話:

    SetWindowPos(hWnd, HWND_TOP, 70, 70, 800, 600, SWP_SHOWWINDOW|SWP_NOCOPYBITS);

    第一個參數是它本身的句柄,第二個當然是讓它剛出來就在最頂端,

    第三到第六個分別是左上角的x,y值和窗口本身的寬高,注意這時候的客戶區可不是800*600

    以下這句話就是生成時候的樣子:

    hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,

    CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

    其中WS_OVERLAPPEDWINDOW表示很多東西;

    #define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | \\

    WS_CAPTION | \\

    WS_SYSMENU | \\

    WS_THICKFRAME | \\

    WS_MINIMIZEBOX | \\

    WS_MAXIMIZEBOX)

    我會把它改成這四個:

    WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX,

    WS_CAPTION|WS_SYSMENU如果沒了就沒了圖標和最右上角的關閉,最大化最小化之類的,所以要留,WS_THICKFRAME和WS_MAXIMIZEBOX去掉的原因是不能讓用戶隨意改動窗口大小,如果是玩家喜歡全屏玩的話可以在游戲里給個按鍵,WS_MINIMIZEBOX是一定要留下的,做游戲的如果不提供BOSS鍵就覺得對不起玩家了,何況這個最小化框呢?!

    接下來改什么呢?要把默認帶的菜單去掉,我們不需要文件,關閉和ABOUT框。。。我的做法是打開Resource里的Menu,把欄目都刪了;

    然后是鼠標,游戲應該帶有自己的鼠標圖片而把系統鼠標屏蔽掉,如果沒有自己的鼠標就不用改了。在switch(message)里面加入這個case:WM_NCMOUSEMOVE,這表示鼠標在非客戶區移動,這時候讓系統鼠標顯示,因為玩家可能需要點住這里拖動窗口,而在WM_MOUSEMOVE的時候再讓系統鼠標隱藏。具體代碼如下:

    // 加個靜態變量記錄鼠標顯示狀態

    static BOOL cursorState = TRUE;

    switch (message)

    {

    case WM_NCMOUSEMOVE:

    {

    if(cursorState == FALSE)

    {

    cursorState = TRUE;

    行尸走肉的數量有趕超人類的趨勢 每天晚上他們是這樣度過的 需要給予認同感 某種程度上 ShowCursor(TRUE);

    }

    }

    break;

    case WM_MOUSEMOVE:

    {

    if(cursorState == TRUE)

    {

    cursorState = FALSE;

    ShowCursor(FALSE);

    }

    // 然后做別的事情

    }

    break;

    // 其他的case項目就不用變了

    }

    最后是圖標,總不能用它自帶的圖標很難看的。如果愿意自己畫幾筆,就改一下Resource里面的icon吧,但是這樣可能更難看, hehe。如果從別的地方考了個.icon文件過來的化,可以這樣添加:

    先把這個ICON加到資源文件里,然后看看在resource.h中它叫什么名字,如果叫IDI_ICON1的話,在注冊窗口類的時候改這兩句話

    //如果窗口類名叫winclass

    con = LoadIcon(hinstance, MAKEINTRESOURCE(IDI_ICON1));

    conSm = LoadIcon(hinstance, MAKEINTRESOURCE(IDI_ICON1));

    差不多了。我最喜歡的游戲窗口就是這樣的。查看本文來源

    小孩消化不良怎么調理
    鄭州包皮包莖治療哪家好
    上海治療婦科醫院哪好
    猜你會喜歡的
    猜你會喜歡的
    主站蜘蛛池模板: 色噜噜久久综合伊人一本| 国产精品蜜芽在线观看| 少妇粉嫩小泬喷水视频| 天天操天天干视频| 国产网红在线观看| 国产在线第一区二区三区| 四虎在线永久精品高清| 免费又黄又爽又猛的毛片| 亚洲欧美激情精品一区二区| 亚洲五月激情综合图片区| 久久久久88色偷偷| a在线视频免费观看| www.亚洲成在线| 艾粟粟小青年宾馆3p上下| 男人j进入女人j内部免费网站| 欧美日韩中文字幕在线| 日本一道在线观看| 天天狠天天透天干天天怕∴| 国产日韩欧美三级| 再深一点灬舒服灬太大了| 亚洲乱码日产精品BD在线观看| 中文字幕巨大乳在线看| 2019日韩中文字幕MV| 色欲香天天天综合网站| 欧美特黄一免在线观看| 日日插人人插天天插| 国产综合色在线精品| 国产一卡2卡3卡四卡精品一信息| 亚洲精品成人a在线观看| 久久久综合视频| 91麻豆精品激情在线观看最新 | 小小的日本乱码在线观看免费| 国产福利免费看| 国产精品一区欧美激情| 国产伦精品一区二区三区免费迷 | 欧美一级久久久久久久大片| 精品人人妻人人澡人人爽人人| 最近最新中文字幕完整版免费高清 | 久久国内精品自在自线软件| 99久久综合狠狠综合久久| 艺校水嫩漂亮得2美女|