diff --git a/win/win32/mhmain.c b/win/win32/mhmain.c index 92b10bfea..6f0d04007 100644 --- a/win/win32/mhmain.c +++ b/win/win32/mhmain.c @@ -18,6 +18,7 @@ typedef struct mswin_nethack_main_window { static TCHAR szMainWindowClass[] = TEXT("MSNHMainWndClass"); static TCHAR szTitle[MAX_LOADSTRING]; +extern void mswin_display_splash_window(void); LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM); @@ -701,7 +702,7 @@ LRESULT onWMCommand(HWND hWnd, WPARAM wParam, LPARAM lParam) switch (wmId) { case IDM_ABOUT: - DialogBox(GetNHApp()->hApp, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About); + mswin_display_splash_window(); break; case IDM_EXIT: diff --git a/win/win32/mhmenu.c b/win/win32/mhmenu.c index f003142e1..b56264562 100644 --- a/win/win32/mhmenu.c +++ b/win/win32/mhmenu.c @@ -821,11 +821,12 @@ BOOL onDrawItem(HWND hWnd, WPARAM wParam, LPARAM lParam) x = lpdis->rcItem.left + 1; - /* print check mark */ + /* print check mark and letter */ if( NHMENU_IS_SELECTABLE(*item) ) { + char buf[2]; + if (data->how != PICK_NONE) { HGDIOBJ saveBrush; HBRUSH hbrCheckMark; - char buf[2]; switch(item->count) { case -1: hbrCheckMark = CreatePatternBrush(data->bmpChecked); break; @@ -840,8 +841,8 @@ BOOL onDrawItem(HWND hWnd, WPARAM wParam, LPARAM lParam) SelectObject(lpdis->hDC, saveBrush); DeleteObject(hbrCheckMark); + } x += TILE_X + 5; - if(item->accelerator!=0) { buf[0] = item->accelerator; buf[1] = '\x0'; diff --git a/win/win32/mswproc.c b/win/win32/mswproc.c index a1c0ab24e..e14633468 100644 --- a/win/win32/mswproc.c +++ b/win/win32/mswproc.c @@ -1427,6 +1427,7 @@ char mswin_yn_function(const char *question, const char *choices, SendMessage(mswin_hwnd_from_winid(WIN_MESSAGE), WM_MSNH_COMMAND, (WPARAM)MSNH_MSG_CARET, (LPARAM)&createcaret ); + mswin_clear_nhwindow(WIN_MESSAGE); mswin_putstr(WIN_MESSAGE, ATR_BOLD, message); /* Only here if main window is not present */ @@ -1490,6 +1491,7 @@ void mswin_getlin(const char *question, char *input) SendMessage(mswin_hwnd_from_winid(WIN_MESSAGE), WM_MSNH_COMMAND, (WPARAM)MSNH_MSG_CARET, (LPARAM)&createcaret ); + mswin_clear_nhwindow(WIN_MESSAGE); mswin_putstr_ex(WIN_MESSAGE, ATR_BOLD, question, 0); mswin_putstr_ex(WIN_MESSAGE, ATR_BOLD, " ", 1); input[0] = '\0'; @@ -1562,6 +1564,7 @@ int mswin_get_ext_cmd() cmd[0] = '\0'; i = -2; + mswin_clear_nhwindow(WIN_MESSAGE); mswin_putstr_ex(WIN_MESSAGE, ATR_BOLD, "#", 0); len = 0; ShowCaret(mswin_hwnd_from_winid(WIN_MESSAGE));