Perdona, se me fue de la cabeza que lo que querias es hacer un menu POPUP, asi que olvidate de lo que te dije arriba en el ultimo mensaje.
Para el POPUP se usa el CreateWindowEx, con todo el mogollon de parametros que tiene, y (creo recordar que) el primero es "lpszClassName", en el es donde le puedes meter el icono.
A la hora de crear una ventana normal seria (esto viene de mi propio programa):
BOOL CHelloWnd::Create(LPCTSTR szTitle, LONG style /* = 0 */,
const RECT& rect /* = recDefault */,
CMDIFrameWnd* parent /* = NULL */)
{
// Register a custom WndClass and create a window.
// This must be done because CHelloWnd has a custom icon.
LPCTSTR lpszHelloClass =
AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW, LoadCursor(NULL, IDC_ARROW), (HBRUSH)(COLOR_WINDOW+11), LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_HELLO)));
return CMDIChildWnd::Create(lpszHelloClass, szTitle, style, rect, parent);
}
Donde IDI_HELLO es un icono propio, no de los standards.
Luego simplemente llamo al metodo desde la View como sigue:
void CWndTestMVCView::OnExampleHello()
{
RECT myRect; myRect.left = 50; myRect.top = 50; myRect.right = 500; myRect.bottom = 500;
CHelloWnd *pHelloWnd = new CHelloWnd;
if (!pHelloWnd->Create(_T("Hello"), WS_CHILD | WS_VISIBLE | WS_OVERLAPPEDWINDOW, myRect, NULL))
return;
// the default PostNcDestroy handler will delete this object when destroyed
}
Y con eso se carga la nueva ventana, con el icono especificado en el otro lado y demas.
Espero que entre este ejemplo y la documentacion de la otra funcion puedas sacar algo en claro.