Если память используется, то main , которые вам нужно обрабатывать, - это не WM_NCCALCSIZE, а WM_NCHITTEST и WM_NCPAINT.
WM_NCHITTEST - это то, что сообщает системе, когда курсор находится над строкой заголовка, поэтому вам нужно занять позицию курсора и решить, находится ли он над областью, которую вы считаете "строкой заголовка". В частности, если пользователь щелкает и перетаскивает курсор в этой области, перетаскивается все окно.
WM_NCPAINT аналогичен WM_PAINT, за исключением области, не относящейся к клиенту, т. Е. Это когда вам нужно нарисовать все, что вы собираетесь, для строки заголовка (и границ окна, если память служит).
Я должен добавить, что давно не играл с этим. Почти наверняка больше я сейчас не вспомню.