SDK中如何响应TREEVIEW节点双击事件

许文君 2009-08-18 09:51:30
BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
//BEGIN MESSAGE CRACK
HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);

case WM_NOTIFY:


请问在哪里响应节点的双击呢,是Main_OnCommand中还是WM_NOTIFY里呢?我定义了这样一个树控件

int i=0;
for(i;i<=10;i++)
{

TCHAR x[256];
ZeroMemory(x,sizeof(x)/sizeof(TCHAR));
wsprintf(x,TEXT("第%d项"),i);
inittree(hwnd,x);
}
void inittree(HWND hwnd,LPCSTR lpcstr)
{
HWND hwndctrl=GetDlgItem(hwnd,IDC_TRV1);
HINSTANCE hinst=(HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE);
TVINSERTSTRUCT tvi;
tvi.item.mask = TVIF_TEXT | TVIF_IMAGE
|TVIF_SELECTEDIMAGE | TVIF_PARAM;
tvi.hInsertAfter = TVI_LAST;
tvi.hParent = TVI_ROOT;
tvi.hParent = NULL;
tvi.item.pszText =(CHAR*) lpcstr;
TreeView_InsertItem(hwndctrl,&tvi);
}


我想要的是双击某节点,MESSAGEBOX出它的item.pszText ,请问该如何实现呢?我是个新手,看不懂MFC的- -求求大家帮忙给我写下吧,万分感谢。
...全文
250 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
许文君 2009-08-19
  • 打赏
  • 举报
回复
已实现,非常感谢您
许文君 2009-08-19
  • 打赏
  • 举报
回复
参照您说的,在代码中加入了

TCHAR cBuf[100];
ZeroMemory(cBuf,sizeof(cBuf)/sizeof(TCHAR));
pitem->pszText = cBuf;

MESSAGEBOX能出来了,可是MessageBox(hWnd, cBuf, "", MB_OK); cBuf却没喝想的那样弹出第多少项。
蒋晟 2009-08-19
  • 打赏
  • 举报
回复
IDC_TRV1?用phdr->hdr.idfrom判断
VITEM FAR* pitem;
TreeView_GetItem(hTree, pitem);
这两句肯定会崩溃,pitem使用之前没有分配空间

许文君 2009-08-19
  • 打赏
  • 举报
回复
我把代码写成这样,但是双击就崩溃,能说下原因么
        case WM_NOTIFY:
{
if (wParam == IDC_TRV1)
{
NM_TREEVIEW* phdr = (NM_TREEVIEW*)lParam;
if(phdr->hdr.code == NM_DBLCLK)
{
HWND hTree = GetDlgItem(hWnd, IDC_TRV1);
TCHAR str[256];
TVITEM FAR* pitem;
TreeView_GetItem(hTree, pitem);
lstrcpy(str, pitem->pszText);
MessageBox(hWnd, str, "", MB_OK);
}
}
}break;
蒋晟 2009-08-19
  • 打赏
  • 举报
回复
Default Tree-View Control Message Processing

WM_LBUTTONDBLCLK Cancels label editing and, if an item was double-clicked, sends the NM_DBLCLK (tree view) notification message to the parent window. If the parent window returns 0, the tree-view control toggles the expanded state of the item, sending the parent window the TVN_ITEMEXPANDING and TVN_ITEMEXPANDED notification messages. There is no return value.
许文君 2009-08-19
  • 打赏
  • 举报
回复
说的我仍然云里雾里,不好意思,我太笨,能给我个例子代码怎么响应么。

1,222

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧