PDA

نسخه کامل مشاهده نسخه کامل : چاپ ترسیمات پیکچر باکس



فاطمه وطن دوست
16-08-2008, 18:20
سلام

برای چاپ ترسمیات پیکچر باکس از چه روشی باید استفاده کرد ؟

نمونه برنامه میخوام.

_H2_
16-08-2008, 19:37
سلام
اولاً عضویتتان را در p30 تبریک میگم.
دوماً، آخرش نتونستم شما را راضی کنم که دست از این VB6 ده سال پیش بردارید.
سوماً،کد زیر را تست کنید، فکر کنم جواب بده

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

فاطمه وطن دوست
16-08-2008, 22:32
سلام

میشه نمونه بزارین ؟

من از این کدا استفاده کردم ولی جواب نگرفتم!



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

_H2_
16-08-2008, 22:55
سلام
خوب پس این دو تا رو چک کنید، دیگه باید نکیشون جواب یده

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

فاطمه وطن دوست
16-08-2008, 23:24
سلام

چرا یوزر کنترل خطی رو که تو پیکچر باکس قرار داره تو پرینت نمیافته ؟

ولی خطوط ترسیم شده توسط برنامه تو پرینت هستن ؟

اسکیل د پیکچر باکس و پرینتر و فرم و یوزرکنترل همه پیکسل هست !

_H2_
17-08-2008, 16:11
سلام طبیعاتاً فقط تصویر و ترسیماتی رسم میشوند که جزء خصوصت Image باشند، یعنی این ربطی به کنترلرهای دیگر که روی کنترلر مورد نظر قرار دارد، ندارد و آنها ترسیم نخواهند شد.
فقط تصویر Image خود کنترلر مورد نظر رسم میشود.

فاطمه وطن دوست
17-08-2008, 19:03
سلام
چرا این کد جواب نمیده !
من از یوزرکنترل خط استفاده کردم . چرا با توجه به اینکه برای شی پرینتر اسکیل گذاشتیم و مختصات هر خط رو بهش میدیم درست ترسیم نمیکنه ؟ !!!!
دوستان میشه تست کنید ؟





برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

_H2_
18-08-2008, 00:28
سلام
حدس میزنم که شما (-100, 100)-(100, -100) را برای یک صفحه A4 تست کرده اید؟
آیا A4 مربعی است؟
اگر ارتفاع را دو برابر کنید، شاید حل شود.

ضمناً دستور Printer.ScaleMode = pixcel کلاً اشتباه سینتکسی است و اگر هم درست بود، با وجود دستور Scale بی معنی بود.
دو خط آخر form_load را حذف کنید. دستورات CurrentX و CurrentY هم هیچ فایده ای به حال شما ندارند و زائد هستند.

فاطمه وطن دوست
18-08-2008, 07:09
سلام

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

یه سوال دیگه :

اگه بخوام از پیکچر باکس با دو تابع api زیر عکس بگیرم نتیجه میگیرم ؟
البته میخوام کیفیت عکس هم خوب باشه .
======================================

میتونم با تابع GetWindowRect

اين تابع هندل يک پنجره را مي گيرد و مختصات چهارچوب آن نسبت به دسکتاپ را بر مي گرداند
گر تابع کار خود را با موفقيت به پايان برساند مقدار بازگشتي يک عدد غير صفر و اگر تابع با خطايي مواجه شود مقدار بر گشتي صفر خواهد بود
hwnd : هندل پنجره مورد نظر
lpRect : اين بافر توسط تابع مقدار دهي مي شود و حاوي چهار چوب پنجره مورد نظر از نوع RECT خواهد بود

-------------------------------------------------------------------------------------------------
و تایع PaintDesktop

اين تابع از پس زمينه ويندوز يک کپي تهيه مي کند و آن رادر يک کنترل گرافيکي قرار مي دهد.
اگر تابع مقدار صفر را بر گرداند به منزلهء عدم موفقيت آن است و مقدار غير صفر نشانگر موفقيت تابع است.
hdc : اين متغير هندل کنترلي است که تصوير بايد در آن قرار بگيرد

نظرتون چیه ؟

فاطمه وطن دوست
18-08-2008, 13:29
سلام
مشکل من با این دو خط حل شد !!!!!




برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

_H2_
18-08-2008, 23:32
سلام

نه من ارتفاع رو دوبرار میکنم خطای زمان اجرا میده !!!!
من جایی VB6 گیر آوردم و تست کردم و با تغییر دو خط کد زیر درست شد.
[ciode]
Printer.Scale (-100, 200)-(100, -200)

...

.Height = Picture1.ScaleHeight
[/code]




نظرتون چیه ؟
اگر برای پرینت میخواهید، نه روش اصولی است و نه با وجود غیر اصولی بودن فایده ای دارد، چون dpi مانیتور 72 یا دیگر 96 است، در حالی که یک پرینت با کیفیت به dpi 300 نیاز دارد.


مشکل من ...حل شد.خوشحالم و موفق باشید.