Control de árbol MFC
La idea del algoritmo de su función es: comenzando desde el nodo especificado, encuentre si sus nodos hermanos y todos los bytes están seleccionados.
Paso 1: Determinar si el nodo actual hItem está seleccionado
Paso 2: Realizar un bucle para obtener los nodos hermanos de hItem, que es su bucle
HTREEITEM hSibling = m_OrgInfo.GetNextItem(hItem, TVGN_NEXT);
mientras (hSibling)
{
...
hSibling = m_OrgInfo . GetNextItem(hSibling, TVGN_NEXT);
}
m_OrgInfo.GetNextItem(hSibling, TVGN_NEXT) es encontrar el siguiente nodo hermano de hSibling
Este ciclo continúa hasta El siguiente nodo de hSibing no es un nodo hermano, entonces hSibing devuelve NULL, es decir, 0
salta fuera del ciclo while.
Paso 3: busque todos los nodos secundarios del nodo actual.
上篇: ¿Es necesario montar el contenedor en el host en el almacenamiento acoplable? Por ejemplo, docker run -it -v /data --name contenedor1 ocupadobox ); y montaje en el host (por ejemplo, docker run -it --name contenedor1 -v /ruta/en/host :/ datavol ocupadobox ), pero para que el volumen persista a través de reinicios de contenedores o incluso intercambios de contenedores (eliminación de contenedores antiguos, creación de compilaciones/inicio de otros nuevos), ¿ningún método montará los volúmenes en el host? En otras palabras, si no lo monto explícitamente en el host mediante el "método de montaje simple", ¿dónde está montado exactamente el volumen? ¿Dónde está su ubicación? ¿Cómo sobrevive esta ubicación al intercambio de contenedores? Además, en ambos casos, supongo que los volúmenes son solo locales para el host determinado; si tiene un clúster o un clúster ejecutándose en varios hosts, no podrá usar estos comandos para permitir que los contenedores se ejecuten en diferentes hosts. acceder a los volúmenes, ¿es correcto? (Supongo que aquí es donde entra en juego el contenedor de volumen de datos, ¿verdad? ¿Ninguno de estos métodos montará el volumen en el host? Sí, ambos métodos se basan en el directorio del host guardado durante el ciclo de vida del contenedor. El uso de estos comandos obtendrá más información: docker volume ls docker volume inspect lt;volume-idgt; # y docker inspect lt;container-idgt; (Método 1) ¿Dónde está el volumen montado real? Haga esto: docker inspect lt;container-idgt; "Archivo fuente": "Montaje": [ { "Tipo": "volumen", "Nombre": "96f5e6531480cc716cd030f3f60f8927a55728a52d55ad55589752c2b89f2001", "Fuente": "/var/lib/docker/volumes/ 96f5e653 1480cc716cd030f3f6 0f8927a55728a52d55ad55589752c2b89f2001/ _data", "Destino" : "/data", "Driver": "local", "Mode": "", "RW": true, "Propagation": ""} Tenga en cuenta que si está utilizando sistemas operativos OSX o Windows, "source " se refiere al directorio local dentro de la máquina virtual que ejecuta Docker. Entonces, ¿cómo sobrevive esta ubicación al intercambio de contenedores? Porque se basan en el directorio local del host (son volúmenes, por lo que existen). Si está ejecutando Swarm o un clúster en múltiples hosts, no puede usar estos comandos para permitir que los contenedores que se ejecutan en diferentes hosts accedan a los volúmenes, ¿verdad? Tiene razón acerca de la CONFIGURACIÓN simple del volumen. Aquí es donde Docker se vuelve complicado y persistente. Puede implementar un directorio de cobertura en el. nivel del sistema de archivos del host y luego montarlo como un volumen en el contenedor, obteniendo así el volumen de cobertura en el host del clúster. 下篇: fastjson.JSONException: se requiere redondeo