当前位置:   article > 正文

Win32控件库、控件大全_win32控件大全

win32控件大全

我自己看文档、找资料和写代码需要一定时间,现在在用课余时间持续更新中...


Win32控件中文文档

控件库 - Win32 apps | Microsoft Learn

win32控件英文文档

Control Library - Win32 apps | Microsoft Learn

win32通用控件中文文档

Commdlg.h 标头 - Win32 apps | Microsoft Learn

win32通用控件英文文档

Commdlg.h header - Win32 apps | Microsoft Learn


如何生成通用控件“FindText”?

想要创建通用控件“FindText”,就要知道FINDREPLACEA结构体。

附此结构体的英文文档:FINDREPLACEA (commdlg.h) - Win32 apps | Microsoft Learn

  1. typedef struct tagFINDREPLACEA {
  2. DWORD lStructSize;
  3. HWND hwndOwner;
  4. HINSTANCE hInstance;
  5. DWORD Flags;
  6. LPSTR lpstrFindWhat;
  7. LPSTR lpstrReplaceWith;
  8. WORD wFindWhatLen;
  9. WORD wReplaceWithLen;
  10. LPARAM lCustData;
  11. LPFRHOOKPROC lpfnHook;
  12. LPCSTR lpTemplateName;
  13. } FINDREPLACEA, *LPFINDREPLACEA;

逐个介绍此结构体的成员:

DWORD lStructSize

结构体的字节长度

HWND hwndOwner

拥有此通用控件“FindText”的窗口的句柄,这个句柄可以是任何有效的窗口,但不能写NULL

DWORD Flags

暂时还没弄懂...,先填FR_DIALOGTERM吧

LPSTR lpstrFindWhat

用户输入在“Find What”编辑框里面的要查找的字符串。你必须动态分配一个缓冲区,或者用一个全局数组或静态数组。这个缓冲区至少要有80个char那么长。

LPSTR lpstrReplaceWith

用户输入在“Replace With”编辑框里面的要被替代的字符串。你必须动态分配一个缓冲区,或者用一个全局数组或静态数组。

WORD wFindWhatLen

被lpstrFindWhat成员指定的缓冲区的字节长度

WORD wReplaceWithLen

被lpstrReplaceWith成员指定的缓冲区的字节长度

LPARAM lCustData

暂时还没弄懂...,先填NULL吧

LPFRHOOKPROC lpfnHook

暂时还没弄懂...,先填NULL吧

LPCSTR lpTemplateName

暂时还没弄懂...,先填NULL吧

创建通用控件“FindText”的函数:

  1. HWND FindText(
  2. LPFINDREPLACEA unnamedParam1
  3. );

创建通用控件“FindText”的简单代码:

  1. #include<Windows.h>
  2. LRESULT CALLBACK WndProc(HWND hWnd, UINT msgID, WPARAM wParam, LPARAM lParam)
  3. {
  4. switch (msgID)
  5. {
  6. case WM_DESTROY:
  7. PostQuitMessage(0);
  8. break;
  9. }
  10. return DefWindowProc(hWnd, msgID, wParam, lParam);
  11. }
  12. int CALLBACK WinMain(HINSTANCE hIns, HINSTANCE hPreIns, LPSTR lpCmdLine, int nCmdShow)
  13. {
  14. WNDCLASS wc = { 0 };
  15. wc.cbClsExtra = 0;
  16. wc.cbWndExtra = 0;
  17. wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
  18. wc.hCursor = NULL;
  19. wc.hIcon = NULL;
  20. wc.hInstance = hIns;
  21. wc.lpfnWndProc = WndProc;
  22. wc.lpszClassName = L"Main";
  23. wc.lpszMenuName = NULL;
  24. wc.style = CS_HREDRAW | CS_VREDRAW;
  25. RegisterClass(&wc);
  26. HWND hWnd = CreateWindowEx(0, L"Main", L"window", WS_OVERLAPPEDWINDOW, 100, 100, 500, 500, NULL, NULL, hIns, NULL);
  27. char find_buffer[80] = " ", replace_buffer[80] = " ";
  28. FINDREPLACEA find;
  29. find.lStructSize = sizeof(find);
  30. find.hwndOwner = hWnd;
  31. find.hInstance = hIns;
  32. find.Flags = FR_DIALOGTERM;
  33. find.lpstrFindWhat =find_buffer;
  34. find.lpstrReplaceWith =replace_buffer;
  35. find.wFindWhatLen = sizeof(find_buffer);
  36. find.wReplaceWithLen = sizeof(replace_buffer);
  37. find.lCustData = NULL;
  38. find.lpfnHook = NULL;
  39. find.lpTemplateName = NULL;
  40. LPFINDREPLACE lpfp = (LPFINDREPLACE)&find;
  41. HWND hFind = FindText(lpfp);
  42. ShowWindow(hWnd, SW_SHOW);
  43. UpdateWindow(hWnd);
  44. MSG nMsg = { 0 };
  45. while (GetMessage(&nMsg, NULL, NULL, NULL))
  46. {
  47. TranslateMessage(&nMsg);
  48. DispatchMessage(&nMsg);
  49. }
  50. return 0;
  51. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/413879
推荐阅读
相关标签
  

闽ICP备14008679号