PDA

View Full Version : دو سوال در رابطه با پنجره و ریسورس .... ؟؟؟



ali_mohamadi8928
شنبه 18 اسفند 1386, 15:49 عصر
با سلام ...

دوستان من یک فایل رو از قسمت File Viwe با استفاده از راست کلیک و انتخاب گزینه ی Add file to project به پرژه ی خودم اظافه میکنم ....

حالا من میخوام در هنگام اجرای برنامم با یک کد اون رو از ریسورس برنامم به روی هارد بر روی یک مسیر معین کپی کنم !!! ایا دوستان کدی در این زمینه دارن ؟؟

---------------------------------

در VC++ چه جوری باید هندل پنجره ی پرژه ی خودم رو بدست بیارم ... ؟؟؟

A_Salimi
شنبه 18 اسفند 1386, 17:58 عصر
من به دو تا سوال شما جواب میدم اما امیدوارم دوستان هم در مورد جواب من اظهار نظر کنن و اگه احیانا اشتباهی بود بگن :

ج 1 :
دو تا دستور برای فایلها وجود دارن :



CString جریان فایل . GetFilePath();
که مسیر کامل فایلی رو بر می گردونه .



جریان فایل . SetFilePath(LPCSTR lpszNewName);

مسیر فایل رو تنظیم میکنه و lpszNewName مسیر جدیدیه که به فایل تخصیص پیدا میکنه .

ج2:
فکر می کنم با تابع FindWindow بشه هندل یه پنجره رو گرفت .

ali_mohamadi8928
شنبه 18 اسفند 1386, 18:24 عصر
خیلی ممنونم از جوابهایتان اما ....

در رابطه با جواب اولتون باید بگم که ربطی به سوالم نداشت ...

------------

در رابطه با جواب دوم هم باید بگم که فکر نکنم برای گرفتن هندل پنجره ی برنامه ی خودم نیازی باشه از یک تابع API استفاده کنم ... !!!!

Nima_NF
شنبه 18 اسفند 1386, 22:42 عصر
برای سوال اول شما ، می توانید یک resource بسازید و سپس در آن یک custom resource اضافه کنید (دکمه ای با نام Custom... در هنگام add کردن وجود دارد) .
پس از ساختن و نام گذاری آن پنجره ای باز می شود که می توانید اطلاعات باینری را در آن بنویسید که شما فقط به بخش properties می روید و فایل مورد نظر خود را با هر پسوندی که هست جایگزین bin.*** در فیلد filename می کنید.

فراخوانی ان هم ساده نیست ، شما از طریق تابع LockResource و توابع زیر می توانید یک اشاره گر به فایل در زمان اجرا بدست آورید و سپس از طریق توابع ساخت فایل دوباره فایل را با محتویات این custom resource در هر جای هارد دیسک بسازید:




h_Resource = LoadResource (hInst,
FindResource (hInst, TEXT ("YOURNAME"),
MAKEINTRESOURCE (IDR_BINTYPE1))) ;

pData = (char *) LockResource (h_Resource) ;


در مورد سوال دوم هم ، شما در هنگام ساخت پنجره همواره به هندل دسترسی دارید که می توانید آن را کپی و استفاده کنید ، در غیر این صورت از همان FindWindow می توانید استفاده کنید و یا موارد مشابه :



this->GetParent();