È sicuramente uno dei problemi, inizia a sistemare quello; più in generale, la regola del "ma a me funziona" è una pessima regola. Si segue la documentazione, ovvero il contratto tra il tuo programma e le WinAPI, perché se in questa versione di Windows sembra funzionare anche se sgarri, nella prossima potrebbe non andare più (e la colpa è tua che ti sei appoggiato a comportamenti non documentati).

Altri problemi:
  • non stai disegnando un rettangolo, nella tua classe _RECT non fai altro che ridisegnare lo stesso pixel cento volte (tra l'altro in maniera estremamente inefficiente, dato che continui ad acquisire e rilasciare il DC);
  • più in generale, se scrivi una classe/funzione/... che deve disegnare non le fai passare un HWND, ma un HDC, in modo che (1) possa essere riciclata per disegnare su qualunque DC, non solo su quelli di finestra e (2) si eviti di perdere tempo ad acquisire/rilasciare DC ad ogni momento;
  • per disegnare rettangoli comunque c'è già la funzione Rectangle;
  • gli identificativi che iniziano per underscore e sono seguiti da una lettera maiuscola sono riservati per il compilatore in ogni namespace (cose simili valgono per i doppi underscore); poi in genere i nomi tutti maiuscoli si usano per le macro, ma quest'ultima è una questione più stilistica che altro.