Red de conocimiento informático - Problemas con los teléfonos móviles - Código fuente del asistente Vc

Código fuente del asistente Vc

Muy simple:

Paso uno: asocia tu control de árbol con una variable de CTreeCtrl en el asistente (al igual que m_Mess en tu código).

Paso 2: Agregue el mensaje NM_Click del control de árbol en el asistente (es decir, el mensaje de clic del mouse, la función que se asume a continuación se llama OnClickTree).

Paso 3: Añade tus datos al código (principalmente en la función que inicializa los datos de control del árbol, como OnInitDialog() en tu código).

Htree elemento hroot = m_ctrl árbol. insertitem("Pekín");

m_ctrlTree. SetItemData(hRoot, 1);

Htree elemento hchild = m_ctrl árbol. insertitem("Distrito de Chaoyang", hRoot);

m_ctrlTree. SetItemData(hChild, 2);

HChild = m_ctrlTree. InsertItem("Distrito Haidian", hRoot);

m_ctrlTree. SetItemData(hChild, 3);

Nota: utilicé la función SetItemData anterior, principalmente para agregar diferentes etiquetas a diferentes nodos.

, puedes verlo en acción en la función de mensaje de clic a continuación.

Paso 4: Agregue el código de respuesta del mensaje de clic del mouse a la función OnClickTree.

c point pt = GetCurrentMessage()- gt; //Obtiene el punto de coordenadas del mensaje de clic actual.

m_ctrlÁrbol. screento client(amp;pt);//Convierte las coordenadas de pantalla del mouse a las coordenadas del área del cliente del control de árbol.

UINT u flags = 0;

HTREEITEM hItem = m_ctrlTree. HitTest(pt amp; u flags); // Luego haz una prueba de clic.

If ((hItem!= NULL) amp; amp(TVHT _ ONITEM ampulags))//Si la posición en la que se hizo clic está por encima de la posición del nodo,

{

m_ctrlTree. SelectItem(hItem);

//Obtiene los datos que configuramos al principio. Tenga en cuenta que es por eso que comencé a configurar datos diferentes para cada nodo. Por supuesto, si tiene menos nodos de datos, también puede obtener el texto del nodo, como "Distrito Haidian" establecido anteriormente, y luego comparar las cadenas para determinar en qué nodo hizo clic.

int nDat = m_ctrlTree. GetItemData(hItem);

// Luego puedes completar diferentes acciones basadas en diferentes nodos.

Cambiar (nDat)

{

Caso 1:

AfxMessageBox("Beijing");

Pausa;

Caso dos:

AfxMessageBox("Beijing-gt; Distrito de Chaoyang");

Pausa;

Caso tres:

AfxMessageBox("Beijing-gt;Distrito de Haidian");

Pausa;

Valor predeterminado:

AfxMessageBox(" ERROR " );

}

}

//Si esto no resuelve tu problema, estoy realmente sin palabras. Aquí tienes, jefe, jajajajajaja.