سلام می خواستم از دوستان بپرسم در دانشگاه من در قسمت اینترنت دانشگاه برنامه ای نوشته بودند که در منو بار جایی که ضربدر و کوچک و بزرگ صفحه قرار دارد از 15 ثانیه شروع می کرد و این ثانیه ها که کم می شد را نشون می داد تا صفر می شد صفحه بسته می شد چطور در منو بار این کار را می شه کرد
هر فرم استاندارد ای معمولا دو پنجره داره، یکی اش پنجره Client است که کنترل های برنامه در آن قرار می گیرند
و پنجره دوم Nonclient است که کادر Frame دور فرم و عنوان برنامه و دکمه های Close و Maximize و ... در آن قرار دارد
و در اغلب برنامه ها این پنجره دوم صرفا توسط سیستم عامل اداره می شود و برنامه نویسان کاری با این پنجره
Nonclient ندارند. قصد شما این است که ترسیم را بجای بخش Client در این بخش Nonclient انجام دهید.
کار سختی نیست، پنجره فرم یک Handle داره که شماره منحصر بفرد اون پنجره است، با تابع GetWindowDC که
در API ویندوز تعریف شده میشه به یک Handle ای دسترسی داشت که امکان ترسیم گرافیکی در کل محیط پنجره رو میده،
حتی بخش Nonclient .
زمانی که داشتم نمونه کد را می نوشتم به موردی برخوردم، زمانی که چیزی را در پنجره Nonclient رسم می کنید
سیستم عامل Skin مدرن رو در اون پنجره غیر فعال می کنه و از Theme کلاسیک ویندوز های 98 استفاده میشه،
حداقل در ویندوز 7 که چنین نتیجه ای داره.
به نمونه پروژه #C پیوستی مراجعه کنید. TimerInWindowFrame.zip