?? dialog.c
字號:
if (hDef) { SendMessage (hWnd, MSG_COMMAND, GetDlgCtrlID (hDef), 0L); return 0; } break; } case SCANCODE_CURSORBLOCKDOWN: case SCANCODE_CURSORBLOCKRIGHT: case SCANCODE_CURSORBLOCKUP: case SCANCODE_CURSORBLOCKLEFT: { HWND hNewFocus; if (hCurFocus && SendMessage (hCurFocus, MSG_GETDLGCODE, 0, 0L) & DLGC_WANTARROWS) break; if (LOWORD (wParam) == SCANCODE_CURSORBLOCKDOWN || LOWORD (wParam) == SCANCODE_CURSORBLOCKRIGHT) hNewFocus = GetNextDlgGroupItem (hWnd, hCurFocus, FALSE); else hNewFocus = GetNextDlgGroupItem (hWnd, hCurFocus, TRUE); if (hNewFocus != hCurFocus) { if (SendMessage (hCurFocus, MSG_GETDLGCODE, 0, 0L) & DLGC_STATIC) return 0; SetFocus (hNewFocus);// SendMessage (hWnd, MSG_DLG_SETDEFID, GetDlgCtrlID (hNewFocus), 0L); if (SendMessage (hNewFocus, MSG_GETDLGCODE, 0, 0L) & DLGC_RADIOBUTTON) { SendMessage (hNewFocus, BM_CLICK, 0, 0L); ExcludeWindowStyle (hCurFocus, WS_TABSTOP); IncludeWindowStyle (hNewFocus, WS_TABSTOP); } } return 0; } } break; default: break; } return DefaultMainWinProc (hWnd, message, wParam, lParam);}int GUIAPI GetDlgCtrlID (HWND hwndCtl){ PCONTROL pCtrl = (PCONTROL)hwndCtl; if (pCtrl) { return pCtrl->id; } return -1;}HWND GUIAPI GetDlgItem (HWND hDlg, int nIDDlgItem){ PCONTROL pCtrl; PMAINWIN pMainWin = (PMAINWIN)hDlg; pCtrl = (PCONTROL)(pMainWin->hFirstChild); while (pCtrl) { if (pCtrl->id == nIDDlgItem) return (HWND)pCtrl; pCtrl = pCtrl->next; } return 0;}HWND GUIAPI GetDlgDefPushButton (HWND hWnd){ PCONTROL pCtrl; PMAINWIN pMainWin = (PMAINWIN)hWnd; pCtrl = (PCONTROL)(pMainWin->hFirstChild); while (pCtrl) { if (SendMessage ((HWND)pCtrl, MSG_GETDLGCODE, 0, 0L) & DLGC_DEFPUSHBUTTON) return (HWND)pCtrl; pCtrl = pCtrl->next; } return 0;}HWND GetNextDlgGroupItem (HWND hDlg, HWND hCtl, BOOL bPrevious){ PCONTROL pStartCtrl, pCtrl; PMAINWIN pMainWin = (PMAINWIN)hDlg; if (hCtl) pStartCtrl = (PCONTROL)hCtl; else { pStartCtrl = (PCONTROL)(pMainWin->hFirstChild); if (bPrevious) { while (pStartCtrl->next) { pStartCtrl = pStartCtrl->next; } } } if (bPrevious) { if (pStartCtrl->dwStyle & WS_GROUP) { pCtrl = pStartCtrl->next; while (pCtrl && pCtrl->next) { if (pCtrl->dwStyle & WS_GROUP) break; pCtrl = pCtrl->next; } } else pCtrl = pStartCtrl; if (pCtrl->dwStyle & WS_GROUP || pCtrl == pStartCtrl) pCtrl = pCtrl->prev; while (pCtrl) { if (pCtrl->dwStyle & WS_VISIBLE && !(pCtrl->dwStyle & WS_DISABLED) ) return (HWND)pCtrl; pCtrl = pCtrl->prev; } } else { pCtrl = pStartCtrl->next; while (pCtrl) { if ( !(pCtrl->dwStyle & WS_GROUP) ) { if (pCtrl->dwStyle & WS_VISIBLE && !(pCtrl->dwStyle & WS_DISABLED) ) return (HWND)pCtrl; } else break; pCtrl = pCtrl->next; } pCtrl = pStartCtrl->prev; while (pCtrl) { if (pCtrl->dwStyle & WS_GROUP) { if (pCtrl->dwStyle & WS_VISIBLE && !(pCtrl->dwStyle & WS_DISABLED) ) return (HWND)pCtrl; else break; } pCtrl = pCtrl->prev; } if (pCtrl) { // pCtrl is the first control in group. pCtrl = pCtrl->next; while (pCtrl) { if ( !(pCtrl->dwStyle & WS_GROUP) ) { if (pCtrl->dwStyle & WS_VISIBLE && !(pCtrl->dwStyle & WS_DISABLED) ) return (HWND)pCtrl; } else break; pCtrl = pCtrl->next; } } } return hCtl;}HWND GUIAPI GetNextDlgTabItem (HWND hDlg, HWND hCtl, BOOL bPrevious){ PCONTROL pFirstCtrl, pLastCtrl, pCtrl; PMAINWIN pMainWin = (PMAINWIN)hDlg; pFirstCtrl = pCtrl = (PCONTROL)(pMainWin->hFirstChild); if (!pCtrl) return hCtl; while (pCtrl->next) { pCtrl = pCtrl->next; } pLastCtrl = pCtrl; if (hCtl) { pCtrl = (PCONTROL)hCtl; if (bPrevious) pCtrl = pCtrl->prev; else pCtrl = pCtrl->next; } else if (bPrevious) pCtrl = pLastCtrl; else pCtrl = pFirstCtrl; if (bPrevious) { while (pCtrl) { if (pCtrl->dwStyle & WS_TABSTOP && pCtrl->dwStyle & WS_VISIBLE && !(pCtrl->dwStyle & WS_DISABLED) ) return (HWND)pCtrl; pCtrl = pCtrl->prev; } pCtrl = pLastCtrl; while (pCtrl) { if (pCtrl->dwStyle & WS_TABSTOP && pCtrl->dwStyle & WS_VISIBLE && !(pCtrl->dwStyle & WS_DISABLED) ) return (HWND)pCtrl; pCtrl = pCtrl->prev; } } else { while (pCtrl) { if (pCtrl->dwStyle & WS_TABSTOP && pCtrl->dwStyle & WS_VISIBLE && !(pCtrl->dwStyle & WS_DISABLED) ) return (HWND)pCtrl; pCtrl = pCtrl->next; } pCtrl = pFirstCtrl; while (pCtrl) { if (pCtrl->dwStyle & WS_TABSTOP && pCtrl->dwStyle & WS_VISIBLE && !(pCtrl->dwStyle & WS_DISABLED) ) return (HWND)pCtrl; pCtrl = pCtrl->next; } } return hCtl;}int GUIAPI SendDlgItemMessage (HWND hDlg, int nIDDlgItem, int message, WPARAM wParam, LPARAM lParam){ HWND hCtrl; hCtrl = GetDlgItem (hDlg, nIDDlgItem); if (hCtrl) return SendMessage (hCtrl, message, wParam, lParam); return -1;}UINT GUIAPI GetDlgItemInt (HWND hDlg, int nIDDlgItem, BOOL *lpTranslated, BOOL bSigned){ HWND hCtrl; char buffer [101]; unsigned long int result; if ( !(hCtrl = GetDlgItem (hDlg, nIDDlgItem))) goto error; if (SendMessage (hCtrl, MSG_GETTEXT, 100, (LPARAM)buffer) == 0) goto error; if (bSigned) result = strtoul (buffer, NULL, 0); else result = (unsigned long int)strtol (buffer, NULL, 0); if (lpTranslated) *lpTranslated = TRUE; return (UINT)result; error: if (lpTranslated) *lpTranslated = FALSE; return 0;}BOOL GUIAPI SetDlgItemInt (HWND hDlg, int nIDDlgItem, UINT uValue, BOOL bSigned){ HWND hCtrl; char buffer [101]; if ( !(hCtrl = GetDlgItem (hDlg, nIDDlgItem))) return FALSE; if (bSigned) snprintf (buffer, 100, "%ld", (long)uValue); else snprintf (buffer, 100, "%u", uValue); buffer [100] = '\0'; return SendMessage (hCtrl, MSG_SETTEXT, 0, (LPARAM)buffer) == 0;}int GUIAPI GetDlgItemText (HWND hDlg, int nIDDlgItem, char* lpString, int nMaxCount){ HWND hCtrl; if ( !(hCtrl = GetDlgItem (hDlg, nIDDlgItem))) return 0; return SendMessage (hCtrl, MSG_GETTEXT, (WPARAM)nMaxCount, (LPARAM)lpString);}char* GUIAPI GetDlgItemText2 (HWND hDlg, int id, int* lenPtr){ int len; char* buff; len = SendDlgItemMessage (hDlg, id, MSG_GETTEXTLENGTH, 0, 0L); if (len > 0) { buff = malloc (len + 1); if (buff) SendDlgItemMessage (hDlg, id, MSG_GETTEXT, len, (LPARAM)(buff)); } else buff = NULL; if (lenPtr) *lenPtr = len; return buff;}BOOL GUIAPI SetDlgItemText (HWND hDlg, int nIDDlgItem, const char* lpString){ HWND hCtrl; if ( !(hCtrl = GetDlgItem (hDlg, nIDDlgItem))) return FALSE; return SendMessage (hCtrl, MSG_SETTEXT, 0, (LPARAM)lpString) == 0;}#ifdef _CTRL_BUTTONvoid GUIAPI CheckDlgButton (HWND hDlg, int nIDDlgItem, int nCheck){ HWND hCtrl; int DlgCode; if ( !(hCtrl = GetDlgItem (hDlg, nIDDlgItem))) return; DlgCode = SendMessage (hCtrl, MSG_GETDLGCODE, 0, 0L); if (DlgCode & DLGC_BUTTON) SendMessage (hCtrl, BM_SETCHECK, nCheck?BST_CHECKED:BST_UNCHECKED, 0L); else if (DlgCode & DLGC_3STATE) { SendMessage (hCtrl, BM_SETCHECK, nCheck, 0L); }}void GUIAPI CheckRadioButton (HWND hDlg, int idFirstButton, int idLastButton, int idCheckButton)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -