Red de conocimiento informático - Material del sitio web - En la programación MFC, ¿por qué las dos variables CPen p1 y p1 que definí no pueden asignarse valores entre sí? Es decir, p1 = p2 genera un error.

En la programación MFC, ¿por qué las dos variables CPen p1 y p1 que definí no pueden asignarse valores entre sí? Es decir, p1 = p2 genera un error.

CPen es una clase especial que sólo se puede crear y eliminar, no modificar.

Si deseas copiar el pincel, primero asegúrate de que p1 no haya sido creado (CreatePen), para poder copiarlo de la siguiente manera: LOGPEN?lp;

p2.GetLogPen (&lp);

p1.CreatePenIndirect(&lp);

Tenga en cuenta que CPen tiene un FromHandle que puede obtener el pincel a través del mango HPEN, pero esto no es una copia, sino una uso directo.