|
5 | 5 | #include "wke/wkeGlobalVar.h" |
6 | 6 | #include "content/browser/WebPage.h" |
7 | 7 | #include "cc/base/BdColor.h" |
| 8 | +#include "base/strings/string_util.h" |
8 | 9 | //////////////////////////////////////////////////////////////////////////// |
9 | 10 |
|
10 | 11 | namespace wke { |
@@ -409,25 +410,19 @@ LRESULT CWebWindow::_windowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM l |
409 | 410 | // } |
410 | 411 | // break; |
411 | 412 |
|
| 413 | + case WM_SYSKEYDOWN: // no break |
412 | 414 | case WM_KEYDOWN: { |
413 | 415 | unsigned int virtualKeyCode = wParam; |
414 | 416 | unsigned int flags = 0; |
415 | | -// if (HIWORD(lParam) & KF_REPEAT) |
416 | | -// flags |= WKE_REPEAT; |
417 | | -// if (HIWORD(lParam) & KF_EXTENDED) |
418 | | -// flags |= WKE_EXTENDED; |
419 | 417 | flags = lParam; |
420 | 418 | if (wkeFireKeyDownEvent(this, virtualKeyCode, flags, false)) |
421 | 419 | return 0; |
422 | 420 | break; |
423 | 421 | } |
| 422 | + case WM_SYSKEYUP: // no break |
424 | 423 | case WM_KEYUP: { |
425 | 424 | unsigned int virtualKeyCode = wParam; |
426 | 425 | unsigned int flags = 0; |
427 | | -// if (HIWORD(lParam) & KF_REPEAT) |
428 | | -// flags |= WKE_REPEAT; |
429 | | -// if (HIWORD(lParam) & KF_EXTENDED) |
430 | | -// flags |= WKE_EXTENDED; |
431 | 426 | flags = lParam; |
432 | 427 | if (wkeFireKeyUpEvent(this, virtualKeyCode, flags, false)) |
433 | 428 | return 0; |
@@ -565,6 +560,8 @@ LRESULT CWebWindow::_windowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM l |
565 | 560 | ::ImmReleaseContext(hwnd, hIMC); |
566 | 561 | } |
567 | 562 | return 0; |
| 563 | + case WM_GETDLGCODE: // 使得MB控件作为对话框子窗口时可接收到键盘消息 |
| 564 | + return DLGC_WANTARROWS | DLGC_WANTALLKEYS | DLGC_WANTCHARS; |
568 | 565 | } |
569 | 566 |
|
570 | 567 | return ::DefWindowProcW(hwnd, message, wParam, lParam); |
@@ -739,9 +736,8 @@ void CWebWindow::setTitle(const wchar_t* text) |
739 | 736 |
|
740 | 737 | void CWebWindow::setTitle(const utf8* text) |
741 | 738 | { |
742 | | - wchar_t wtext[1024 * 64 + 1] = { 0 }; |
743 | | - MultiByteToWideChar(CP_UTF8, 0, text, strlen(text), wtext, 1024*64); |
744 | | - setTitle(wtext); |
| 739 | + std::wstring textW = base::UTF8ToWide(text); |
| 740 | + setTitle(textW.c_str()); |
745 | 741 | } |
746 | 742 |
|
747 | 743 | void CWebWindow::setTransparent(bool transparent) |
|
0 commit comments