win32: 文本編輯框(Edit)控件響應事件


過去幾年,關於文本編輯框(Edit)控件的響應事件,我都是在主程序 while(GetMessage(&messages, NULL, 0, 0)) { ... } 捕獲。

總感覺這種方式讓人感覺不舒服。

今天想給一個 Edit 控件加一下按下【回車】的響應事件,我百度了一下,找到一篇文章:https://blog.csdn.net/gloria__zhang/article/details/7214121

 

原來只需要通過 LONG OldProc = SetWindowLong(hwnd_edit, GWL_WNDPROC, (LONG)MyEditProc); 就能實現響應事件,我感覺這種實現方式更符合我的要求。

ONG OldProc;
LRESULT CALLBACK MyEditProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch( message )
   {
      case WM_LBUTTONDOWN:
      {
          //左鍵按下時修改編輯框的文本
          SetWindowText(hWnd, "請按任意鍵..");
      }
      break;
   }

   //一定要這么加,只處理需要的消息,不需要的返回給父窗口
   return CallWindowProc((WNDPROC)OldProc, hWnd, message, wParam, lParam);
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM