If you want to know how to do GUI stuff - then the Windows System Programming book is NOT the book for that.
This book is all about IPC (Inter Pprocess Communication), threads, DLL, sockets and stuff.
It uses console only (I aassume to keep the code examples smaller and cleaner
and not to detract from the subject matter).
So of the two books you mentioned - If you want to learn the GUI stuff - Petzold it is.
This comment I see so often that goes something like
"...but Petzold uses C and I'm not interested in that .... I want to learn Windows programming with C++ .... etc. "
shows a lack of understanding of the issues. Basically, most or all the operating systems we presently use were written in C or C and assembler, and their raw Application Programing Interfaces which they expose to coders are likewise documented using C syntax. The underlying code was likely written in C or assembler, but its documented in C. When Windows, Unix, and Linux were created C++ as it exits today didn't even exist.
So the real issue is as follows; If you want to use C++ to write Windows programs then you need to use a 'Class Framework' that 'wraps' the underlying C Application Programming Interface' in an 'object layer' exposable through C++. Then you don't have to see the C API calls; you've insulated yourself from them.
On the other hand, if your primary interest is in learning the Windows API to write your Windows programs, then you are going to have to learn the C way of doing it. That doesn't exactly mean that you can't use the features of C++ to write your programs; it just means that the operating system isn't exposing itself to you through the idioms of typical C++ objects.
I consider myself to be a 'pure' Windows API coder. However, I never, ever, compile my programs using C compilation. I always compile as C++. I use objects and classes where I see fit and where it suits me.