Develop and Download Open Source Software

Browse Subversion Repository

Diff of /branches/ssh_chacha20poly1305/ttssh2/ttxssh/ttxssh.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 5578 by yutakapon, Sun May 4 15:49:47 2014 UTC revision 5579 by yutakapon, Sun May 4 16:54:12 2014 UTC
# Line 2467  static void init_about_dlg(PTInstVar pva Line 2467  static void init_about_dlg(PTInstVar pva
2467          }          }
2468  }  }
2469    
2470  static WNDPROC g_defAboutDlgEditWndProc;  // WM_MOUSEWHEEL は winuser.h ヘッダで宣言されていますが、#define _WIN32_WINNT 0x0400 が宣言されていないと認識されません。
2471    #define WM_MOUSEWHEEL                   0x020A
2472    #define WHEEL_DELTA                     120
2473    #define GET_WHEEL_DELTA_WPARAM(wParam)  ((short)HIWORD(wParam))
2474    #define GET_KEYSTATE_WPARAM(wParam)     (LOWORD(wParam))
2475    
2476    static WNDPROC g_defAboutDlgEditWndProc;  // Edit Controlのサブクラス化用
2477    static int g_deltaSumAboutDlg = 0;        // マウスホイールのDelta累積用
2478    
2479  static LRESULT CALLBACK AboutDlgEditWindowProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)  static LRESULT CALLBACK AboutDlgEditWindowProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp)
2480  {  {
2481          // Edit control上で CTRL+A を押下すると、テキストを全選択する。          WORD keys;
2482          if (msg == WM_KEYDOWN && wp == 'A' && GetKeyState(VK_CONTROL) < 0) {          short delta;
2483                  PostMessage(hWnd, EM_SETSEL, 0, -1);          BOOL page;
2484                  return 0;  
2485      }          switch (msg) {
2486                    case WM_KEYDOWN:
2487                            // Edit control上で CTRL+A を押下すると、テキストを全選択する。
2488                            if (wp == 'A' && GetKeyState(VK_CONTROL) < 0) {
2489                                    PostMessage(hWnd, EM_SETSEL, 0, -1);
2490                                    return 0;
2491                            }
2492                            break;
2493    
2494                    case WM_MOUSEWHEEL:
2495                            // CTRLorSHIFT + マウスホイールの場合、横スクロールさせる。
2496                            keys = GET_KEYSTATE_WPARAM(wp);
2497                            delta = GET_WHEEL_DELTA_WPARAM(wp);
2498                            page = keys & (MK_CONTROL | MK_SHIFT);
2499    
2500                            if (page == 0)
2501                                    break;
2502    
2503                            g_deltaSumAboutDlg += delta;
2504    
2505                            if (g_deltaSumAboutDlg >= WHEEL_DELTA) {
2506                                    g_deltaSumAboutDlg -= WHEEL_DELTA;
2507                                    SendMessage(hWnd, WM_HSCROLL, SB_PAGELEFT , 0);
2508                            } else if (g_deltaSumAboutDlg <= -WHEEL_DELTA) {
2509                                    g_deltaSumAboutDlg += WHEEL_DELTA;
2510                                    SendMessage(hWnd, WM_HSCROLL, SB_PAGERIGHT, 0);
2511                            }
2512    
2513                            break;
2514            }
2515      return CallWindowProc(g_defAboutDlgEditWndProc, hWnd, msg, wp, lp);      return CallWindowProc(g_defAboutDlgEditWndProc, hWnd, msg, wp, lp);
2516  }  }
2517    
# Line 2530  static BOOL CALLBACK TTXAboutDlg(HWND dl Line 2566  static BOOL CALLBACK TTXAboutDlg(HWND dl
2566                  SetFocus(GetDlgItem(dlg, IDOK));                  SetFocus(GetDlgItem(dlg, IDOK));
2567    
2568                  // Edit controlをサブクラス化する。                  // Edit controlをサブクラス化する。
2569                    g_deltaSumAboutDlg = 0;
2570                  g_defAboutDlgEditWndProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(dlg, IDC_ABOUTTEXT), GWLP_WNDPROC, (LONG_PTR)AboutDlgEditWindowProc);                  g_defAboutDlgEditWndProc = (WNDPROC)SetWindowLongPtr(GetDlgItem(dlg, IDC_ABOUTTEXT), GWLP_WNDPROC, (LONG_PTR)AboutDlgEditWindowProc);
2571    
2572                  return FALSE;                  return FALSE;

Legend:
Removed from v.5578  
changed lines
  Added in v.5579

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26