# Native Code > برنامه نویسی در 6 VB >  فرمهای فارسی

## Ahmad-VB

سلام
از اینکه موضوع تاپیک یه مقدار مناسب نیست ببخشید راستش هر چی فکر کردم موضوع مناسبی به ذهنم نرسید اما سوال :

چطوری میشه کاری کرد که دکمه های Close , Min , Max فرم درسمت چپ قرار بگیره نه سمت راست .

----------


## Behrouz_Rad

سلام.
این کار امکان پذیر نیست.
فرم های Desktop Applications از GUI‌ویندوز استفاده می کنند و در تعاریف استاندارد GUI محل قرارگیری دکمه های کنترلی در سمت راست فرم تعیین شده.
تنها راه ایجاد یک فرم سفارشی است.
موفق باشید.
 :wise1:

----------


## Ahmad-VB

اما آقا بهروز من یه همچین فرمهایی رو هم در برنامه های فارسی اون قدیما دیده بودم و هم همین الان روی سیستمم یه برنامه دارم که البته عربیه و یه روز که داشتم تو گوگل سرچ می کردم پیداش کردم ولی به هر حال همونیه که من می خوام :

----------


## Behrouz_Rad

این فرم سفارشیه مطمئن باشید.
در MSDN مایکروسافت این نکته ذکر شده.
 :wise1:

----------


## mohsengrisly

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

----------


## Behrouz_Rad

i'm ready for result

----------


## Ahmad-VB

> این فرم سفارشیه مطمئن باشید.
> در MSDN مایکروسافت این نکته ذکر شده.
>  :wise1:


آقا بهروز منظور از اینکه می گید سفارشیه رو نمی فهمم . من دو تا تصویر از دو تا استایل ویندوز ایکس پی رو براتون گذاشتم تا دیگه این فکر رو نکید اگر بقول شما سفارشی بود با عوض شدن استایل ویندوز نیاید استایل این هم عوض میشد .

 :wink:

----------


## Ahmad-VB

> ای بابا 
> اخه ساختن این فرم همچین سخت هم نیست 
> من چند تایی دارم البته برای نرم افزار خودم طراحی کرده ام 
> اگه خواستی یه نمونه بدم  تازه خیلی هم خوشکله .عروسک 
> فکر می کنم به جای اینکه دنبال این راه باشید  خودتان بسازید بهتره .البته اگر این راه را هم در وی بی پیدا کردید به ما هم بگویید .چون که کار نشد نداره .هیچ وقت 
> دنبال یه راه بهتر هم هستم جواب داد حتما می گم


آقا محسن بدم نمیاد نمونه ای از فرماتون رو ببینم .

----------


## حامد مصافی

سلام 

  جناب Ahmad-VB میشه یه لینکی چیزی از این نرم افزار بذاری تا یه نگاه بهش بندازیم؟

----------


## Behrouz_Rad

هر چند که مطمئنم MSDN اشتباه نمی کنه ولی بد نیست که این برنامه رو ببینیم.
 :wise1:

----------


## R_BABAZADEH

من هم با mohsengrisly موافقم بهترین راه برای فرمهای خاص ساختن انهاست
من هم تمام فرمهامو خودم می سازم تازه اونهارو خیلی هم 3d و با نوارهای متحرک وبا افکتهای مختلف می سازم

----------


## R_BABAZADEH

یه نمونه برات دارم که تاحالا روشش رو به هیچ کس نگفته بودم چون خیلی باحال بود  :mrgreen: 
ولی چون برو بچه های این سایت هم خیلی باحالند براتون می فرستم  :mrgreen:

----------


## حامد مصافی

ببخشید آقای بابازاده 

  اینکه نه دکمه های کنترلی داره ، نه Title bar ، نه Control box 

   :)

----------


## Ahmad-VB

دوستان گرامی من فکر می کنم تصاویر گویای همچیز باشه ولی خوب اگه اصرار دارید اینم لینک البته حدود 3 مگ حجمشه :
http://www.arabteam2000-forum.com/in...0&#entry227006

آقا بابا زاده مسپله اصلا خوش قبافه بودن فرم نیست . این کار برای برنامه های ساده حسابداری به درد میخوره که به شکل و قبافه خیلی نیاز نداره فقط اگه به این شکل باشه حرفه ای تر دیده میشه .

----------


## binyaz2003

*-- Define extended Windows styles
#DEFINE GWL_EXSTYLE -20
#DEFINE WS_EX_LAYOUTRTL 0x400000
#DEFINE WS_EX_NOINHERITLAYOUT 0x100000
*-- Define the Get window long API
DECLARE INTEGER GetWindowLong IN user32;
INTEGER hWnd, INTEGER nIndex 
*-- Define the Set window long API
DECLARE INTEGER SetWindowLong IN user32;
INTEGER hWnd, INTEGER nIndex, INTEGER dwNewLong 
*-- Get this form's current style. 
OldLong = GetWindowLong&#40;ThisForm.HWnd, GWL_EXSTYLE&#41;
*-- Set the window extended style RTL non-inheritable.
SetWindowLong&#40;ThisForm.HWnd,GWL_EXSTYLE,; 
BITOR&#40;OldLong,WS_EX_LAYOUTRTL,WS_EX_NOINHERITL  AYOUT&#41;&#41;

خودتون زحمت تبدیلشو بکشین :sunglass:

----------


## حامد مصافی

سلام 
خیلی ممنون جنابbinyaz2003
واقعاً عالیه

دوستان اینم تبدیل 

Const GWL_EXSTYLE = -20
Const WS_EX_LAYOUTRTL = &H400000
Const WS_EX_NOINHERITLAYOUT = &H100000
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" &#40; _
                           ByVal hWnd As Long, _
                           ByVal nIndex As Long&#41; As Long
                           
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" &#40; _
                           ByVal hWnd As Long, _
                           ByVal nIndex As Long, _
                           ByVal dwNewLong As Long&#41; As Long

Private Sub Form_Load&#40;&#41;
   Dim OldLong ََAs Long
   OldLong = GetWindowLong&#40;hWnd, GWL_EXSTYLE&#41;
   SetWindowLong hWnd, GWL_EXSTYLE, OldLong Or WS_EX_LAYOUTRTL Or WS_EX_NOINHERITLAYOUT
End Sub

----------


## Ahmad-VB

جناب بی نیاز واقعا ممنون . خیلی عالی بود . آقا بهروز باز بگو MSDN گفته نمیشه  :wink:

----------


## binyaz2003

:oops:

----------


## Ahmad-VB

آقا ببخشید من یه مشکل دارم وقتی از این کد استفاده می کنم و فرم رو در حال اجرا تغییر سایز می دم یه مقدار اوضاع بهم می ریزه و کوشه ای از تصویر زیر فرم می افته روی فرم . شما هم این مشکل رو دارید ؟  :گیج:

----------


## H_r_m

> آقا ببخشید من یه مشکل دارم وقتی از این کد استفاده می کنم و فرم رو در حال اجرا تغییر سایز می دم یه مقدار اوضاع بهم می ریزه و کوشه ای از تصویر زیر فرم می افته روی فرم . شما هم این مشکل رو دارید ؟


سلام
اگه منظوزتون سمت راست فرمه برا منم همینطوره  :(

----------


## R_BABAZADEH

دوستان در روشی که من استفاده می کنم که در بالا یه نمونه براتون قرار دادم تمام شکل فرم رو خودتون درست می کنید و نیازی به کدهای بلند نیست فقط یک کد api برای تغییر جا نیاز دارید که در این مثال اورده شده
تمامی کارها بر روی فرم به سلیقه شما بر می گردد و یکی دو تا بر نامه گرافیک  :موفق:

----------


## M-Gheibi

آقای binyaz2003 و آقای BlackDal ممنون
ولی من هم همین مشکل رو دارم:



> آقا ببخشید من یه مشکل دارم وقتی از این کد استفاده می کنم و فرم رو در حال اجرا تغییر سایز می دم یه مقدار اوضاع بهم می ریزه و کوشه ای از تصویر زیر فرم می افته روی فرم . شما هم این مشکل رو دارید ؟

----------


## vbprogramer

از تمام دوستانی زحمت کشیده اند ممنون
مخصوصا جناب بینیاز و blackdal

 :flower:  :thnx:

----------


## حامد مصافی

سلام دوستان
خب منم این مشکل رو دارم     :mad:  :mad:  :mad:  :mad: 
تازه فقط این نیست من با خیلی از توابع API دیگه که روی استیل فرم تاثیر میذاره مشکل دارم 
مثلاً اگه شما فرمتون رو Transparrt کنین اونوقت سرعت اجرای برنامه پایین می آد

نمی دونم دوستان دیگه با سایر زیان ها  هم  همین مشکل رو دارن یا فقط مال ما وی بی کار هاست   :گیج:

----------


## binyaz2003

سلام 
ما تو vfp این مشکل رو نداریم

----------


## Ahmad-VB

یک راه حل به ذهنم رسید اگر یک PictureBox رو طوری روی فرم قرار بدیم که تمام اون رو بگیره میشه از شر این مشکل خلاص شد بعدشم رویداد Resize فرم رو طوری تنظنم می کنیم که PictureBox همیشه به اندازه فرم باشه  :wink:

----------

