现在的位置: 首页 > 综合 > 正文

关于OK,X —Windows mobile窗体

2014年01月10日 ⁄ 综合 ⁄ 共 1418字 ⁄ 字号 评论关闭
关于OK,X ---Windows mobile窗体----纯粹是作为笔记
2009年03月04日 星期三 14:58

To prevent Smart Minimize and OK buttons from appearing on title bar of dialog boxes

  1. Manually edit the resource (.rc) file for the dialog box. Add WS_NONAVDONEBUTTON

    to the STYLE
    line to prevent the display of the Smart Minimize
    button, as shown:

    //
    // Dialog.
    //
    IDD_WIZARD DIALOG DISCARDABLE 0, 0, 140, 57
    STYLE WS_POPUP | WS_CAPTION | WS_NONAVDONEBUTTON
    EXSTYLE 0x80000000L
    CAPTION "Your Wizard"
  2. Remove SHDIF_DONEBUTTON
    from the dwFlags
    member of the SHINITDLGINFO
    user interface structure (generally found in the WM_INITDIALOG
    message handler for the dialog box) to remove the OK
    button from the title bar, as follows:

    SHINITDLGINFO shidi;
    switch (message)
    {
    case WM_INITDIALOG:
    shidi.dwMask = SHIDIM_FLAGS;
    shidi.dwFlags = SHIDIF_SIZEDLGFULLSCREEN;
    shidi.hDlg = hDlg;
    if (!SHInitDialog(&shidi)) {
    MessageBox(NULL, _T("Can't create dialog box."),
    _T("Error"), MB_OK);
    exit(0); // Replace with specific error handling.
    }
    .
    .
    .
  3. Add a call to the SHDoneButton
    function with the SHDB_HIDE
    state after calling the SHInitDialog
    function to hide the OK
    button, as follows:

    if (!SHDoneButton(hDlg, SHDB_HIDE)) {
    MessageBox(NULL, _T("Can't hide the OK button."),
    _T("Error"), MB_OK);
    exit(0); // Replace with specific error handling.
    }
  4. If you run the code as is, no Smart Minimize
    button or OK
    button appears on the title bar, but tapping the Enter
    key in the emulator or on the input panel keyboard closes the dialog
    box. If this is not the desired behavior, make the appropriate changes
    to the WM_COMMAND
    message handler. Generally, you want to set focus to the default control in the current panel of your wizard.

抱歉!评论已关闭.