如何处理Windows树视图项目上的点击事件

如何处理Windows树视图项目上的点击事件,第1张

概述如何处理Windows树视图项目上的点击事件

我如何处理在MS windows树视图中单击的项目?

我的windows proc有:

LRESulT CALLBACK WndProcTreeVIEw(HWND hwnd,UINT message,WParaM wParam,LParaM lParam) { PAINTSTRUCT paintStruct; HDC hDC; switch (message) { case WM_PAINT: { hDC = BeginPaint(hwnd,&paintStruct); EndPaint(hwnd,&paintStruct); break; } case WM_NOTIFY: { switch (reinterpret_cast<LPNMHDR>(lParam)->code) { case NM_CliCK: MessageBox(nullptr,"click",MB_OK); } } default: { return DefWindowProc(hwnd,message,wParam,lParam); break; } }

当我点击treevIEw控件时,会输出一个消息框。 我如何处理个别元素?

正在添加到列表中的treevIEw项目的示例:

std :: mutex :: lock在windows上失败,错误代码为3

C ++ 0x“你好并发世界”立即在g ++ / linux的段错误?

通过套接字发送NulL数据

哪些用于windows的C ++ 11编译器支持像“is_nothrow_move_constructible”这样的新types特征?

multithreading开销与相互独立的线程

std::string vTxt = std::string("Vertex count : ") + std::to_string(mesh.v.size()); tvinsert.hInsertAfter = mesh_items[mesh_items.size() - 1]; tvinsert.hParent = mesh_items[mesh_items.size() - 1]; tvinsert.item.mask = TVIF_TEXT; tvinsert.item.pszText = (LPSTR)vTxt.c_str(); mesh_items_sub.push_back((HTREEITEM)SendMessage(hwnd,TVM_INSERTITEM,(LParaM)&tvinsert));

我已经看到使用SendDlgitemmessage而不是(在windows PROC中提供一个ID为LOWORD(wParam) ),但它需要在资源文件中设置ID – 我不知道如何创build。

为什么CR LF在windows中更改为LF?

gtest DEATH_TEST抱怨fork()和线程,但是只有线程被join

免费的windows 64位C ++ 11编译器

正则Expression式分组与C ++ 11正则Expression式库匹配

cmake不会使用pthreads构build一个linux c ++ 11交叉编译的程序

两件事我需要我的代码工作:首先给每个项目一个lparam值,并将TVIF_TEXT作为项目的掩码更改为TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_ParaM TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_ParaM TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_ParaM ( TVIF_ParaM允许lparam传递给窗口过程,从而识别控制器)。

工作代码摘录:

TV_INSERTSTRUCT tvinsert; // ... tvinsert.hInsertAfter = Root; tvinsert.hParent = Root; tvinsert.item.pszText = std::string("some text...").c_str(); tvinsert.item.lParam = ID_SOME_ID; // << #defined constant or plain int tvinsert.item.mask = TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_ParaM; root_sub.push_back((HTREEITEM)SendMessage(hwnd,(LParaM)&tvinsert)); // window proc code below LRESulT CALLBACK WndProcTreeVIEw(HWND hwnd,&paintStruct); break; } case WM_NOTIFY: { LPNM_TREEVIEW pntv = (LPNM_TREEVIEW)lParam; if (pntv->hdr.code == TVN_SELCHANGED) { switch (pntv->itemNew.lParam) { case ID_SOME_ID: std::cout << "ID_SOME_ID selected caught here..." << std::endl; break; } } } default: { return DefWindowProc(hwnd,lParam); break; } } return 0; }

好的解释/例子在这里(法语) http://chgi.developpez.com/windows/treevIEw/

总结

以上是内存溢出为你收集整理的如何处理Windows树视图项目上的点击事件全部内容,希望文章能够帮你解决如何处理Windows树视图项目上的点击事件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1271670.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存