Q&A

  • 주화면의 바탕에 그림입히기 ??


메인화면이 회색으로 되어 있어 밋밋하네요

그림을 입히는 방법을 알고십습니다.



웹브라우즈의 배경화면 처럼 조그마한 그림을 붙여도

반복적으로 전화면에 표시되어 화면이 확대되어도

문제없는 방법을 아시는 분은 도움을 부탁드립니다



참고서적이라도 추천부탁....

2  COMMENTS
  • Profile
    redhead 1999.05.20 01:38
    초보자 wrote:

    >

    > 메인화면이 회색으로 되어 있어 밋밋하네요

    > 그림을 입히는 방법을 알고십습니다.

    >

    > 웹브라우즈의 배경화면 처럼 조그마한 그림을 붙여도

    > 반복적으로 전화면에 표시되어 화면이 확대되어도

    > 문제없는 방법을 아시는 분은 도움을 부탁드립니다

    >

    > 참고서적이라도 추천부탁....



    unit untMain;



    interface



    uses

    ....



    type

    TfrmMain = class(TForm)

    ..중간생략...



    private

    { Private declarations }

    FClientInstance:TFarProc; <- 추가

    FPrevClientProc:TFarProc; <- 추가

    procedure ClientWndProc(Var Message:TMessage); <- 추가

    public

    { Public declarations }

    end;



    var

    frmMain: TfrmMain;



    implementation



    {$R *.DFM}



    { 아래 procedure 추가 }

    procedure TfrmMain.ClientWndProc(Var Message:TMessage);

    var

    Mydc : hDC;

    ro,co:Word;

    begin

    with Message do

    case Msg of

    WM_ERASEBKGND :

    begin

    MyDC := TWMEraseBKGND(Message).DC;

    BitBlt(MyDC, 0, 0, frmMain.ClientWidth, frmMain.ClientHeight,

    Image1.Picture.BitMap.Canvas.Handle, 0, 0, SRC

    COPY);

    Result := 1;

    end;

    else

    Result := CallWindowProc(FPrevClientProc, ClientHandle, Msg, wParam

    , lParam);

    end;

    end;



    { 아래 FormCreate이벤트에 추가 }

    procedure TfrmMain.FormCreate(Sender: TObject);

    begin

    FClientInstance := MakeObjectInstance(ClientWndProc);

    FPrevClientProc := Pointer(GetWindowLong(ClientHandle, GWL_WNDPROC));

    SetWindowLong(ClientHandle, GWL_WNDPROC, LongInt(FClientInstance));

    end;



    end.







  • Profile
    초보자 1999.05.20 02:47
    답장을 주셔서 감사드립니다.

    헌데 아래의 코딩을 복사하여 실행을 시켰는데

    에라는 나지않고 컴파일이 되었는데

    그리고 그다음에는 아무런 변화가 없습니다.(T_T)



    물론 아래의 코딩과 더불어 메임폼에 이미지는 하나가져다 두고

    bmp그림을 올린 상태에서 테스트 런을 했습니다.



    디버깅창에 procedure TfrmMain.ClientWndProc 에서

    정의한 ro,co: Word; 변수가 사용이 안되었다고

    나와 있느데 혹시 이때문인지 ....



    한번더 부탁드립니다 /////











    redhead wrote:

    > 초보자 wrote:

    > >

    > > 메인화면이 회색으로 되어 있어 밋밋하네요

    > > 그림을 입히는 방법을 알고십습니다.

    > >

    > > 웹브라우즈의 배경화면 처럼 조그마한 그림을 붙여도

    > > 반복적으로 전화면에 표시되어 화면이 확대되어도

    > > 문제없는 방법을 아시는 분은 도움을 부탁드립니다

    > >

    > > 참고서적이라도 추천부탁....

    >

    > unit untMain;

    >

    > interface

    >

    > uses

    > ....

    >

    > type

    > TfrmMain = class(TForm)

    > ..중간생략...

    >

    > private

    > { Private declarations }

    > FClientInstance:TFarProc; <- 추가

    > FPrevClientProc:TFarProc; <- 추가

    > procedure ClientWndProc(Var Message:TMessage); <- 추가

    > public

    > { Public declarations }

    > end;

    >

    > var

    > frmMain: TfrmMain;

    >

    > implementation

    >

    > {$R *.DFM}

    >

    > { 아래 procedure 추가 }

    > procedure TfrmMain.ClientWndProc(Var Message:TMessage);

    > var

    > Mydc : hDC;

    > ro,co:Word;

    > begin

    > with Message do

    > case Msg of

    > WM_ERASEBKGND :

    > begin

    > MyDC := TWMEraseBKGND(Message).DC;

    > BitBlt(MyDC, 0, 0, frmMain.ClientWidth, frmMain.ClientHeight,

    > Image1.Picture.BitMap.Canvas.Handle, 0, 0, SRC

    > COPY);

    > Result := 1;

    > end;

    > else

    > Result := CallWindowProc(FPrevClientProc, ClientHandle, Msg, wParam

    > , lParam);

    > end;

    > end;

    >

    > { 아래 FormCreate이벤트에 추가 }

    > procedure TfrmMain.FormCreate(Sender: TObject);

    > begin

    > FClientInstance := MakeObjectInstance(ClientWndProc);

    > FPrevClientProc := Pointer(GetWindowLong(ClientHandle, GWL_WNDPROC));

    > SetWindowLong(ClientHandle, GWL_WNDPROC, LongInt(FClientInstance));

    > end;

    >

    > end.

    >

    >

    >





    • 김지연
    • 1999.05.19 19:10
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.19 22:29
      아래의 문제가 아닌것 같네요. 분명 끝나면서 하는일에 생성되지 않은 콘트롤을 사용하려고 하는것 같습니...
    • 안치봉
      1999.05.19 20:36
      김지연 wrote: > 데이타를 구조화해서 자료를 집어넣을려고 아래와 같이 코딩을 했습니다.. > > > ty...
    • sun
    • 1999.05.19 18:55
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.05.20 00:19
      김하정 wrote: > 안녕하세요... > 제가 어제 안치봉씨께 다시 소스를 보냈는데 > Q&A에 올리라는 걸 깜...
    • 안치봉
      1999.05.19 21:06
      김하정 wrote: > 안녕하세요... > 제가 어제 안치봉씨께 다시 소스를 보냈는데 > Q&A에 올리라는 걸 깜...
    • 북해
    • 1999.05.19 18:22
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 지종진
    • 1999.05.19 16:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.19 22:26
      아무래도 BDE의 버전 문제 같군요. BDE만 최신으로 설치해 보세요. BDE는 개발환경과 사용환경이 같은 버...
    • 하윤철
      1999.05.19 17:33
      강지영 wrote: > loop로 처리하였을때 Update Failed라는 에러가 발생합니다. > > with Query1 do > b...
    • 1999.05.19 10:06
      강지영 wrote: > 안녕하세요. 또 지영이 입니다. > Tdatabase의 ApplyUpdates메소드를 사용하다가 문제에...
    • 강지영
      1999.05.19 15:23
      한 wrote: > 강지영 wrote: > > 안녕하세요. 또 지영이 입니다. > > Tdatabase의 ApplyUpdates메소드를 ...
    • 1999.05.20 01:49
      강지영 wrote: > 한 wrote: > > 강지영 wrote: > > > 안녕하세요. 또 지영이 입니다. > > > Tdatabase...
    • 김영주
    • 1999.05.19 04:52
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.05.19 21:15
      김영주 wrote: > 계속 Screen Saver에 대한 질문이군요. > > explorer에서 보면 '화면보호기 연결프...
    • 김영주
      1999.05.21 18:53
      Hi. > 이 게시판에서 ShellExecute 나 WinExe 로 검색을 해보시기 바랍니다. > 아니면 Win32 API 도...
    • 강경중
    • 1999.05.19 04:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.19 04:39
      Label은 죽어도 포커스를 가지지 못합니다. 강경중 wrote: > 도와 주세요 > 폼의 여러 콤포넌트 중 실...
    • 강경중
    • 1999.05.19 03:53
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.19 04:01
      저장을 하셔야 합니다. ComboBox1.Items.SaveToFile 로 저장하시고 시작될때는 ComboBox1.Items.Loa...
    • 신규찬
    • 1999.05.19 02:32
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 전철호
      1999.05.19 19:53
      신규찬 wrote: > maskedit에서 한글을 입력하면 에러가 발생합니다. > 어떻게 처리하면 되는지 아시는분 ...
    • 오기주
    • 1999.05.19 02:31
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 하윤철
      1999.05.19 03:22
      오기주 wrote: > 계산 항목을 가로로 나오게 할수 없는지요?? > 조건을 개별적으로 줄수 있는 방법이 없...
    • 초보자
    • 1999.05.19 02:15
    • 2 COMMENTS
    • /
    • 0 LIKES
    • redhead
      1999.05.20 01:38
      초보자 wrote: > > 메인화면이 회색으로 되어 있어 밋밋하네요 > 그림을 입히는 방법을 알고십습니다. ...
    • 초보자
      1999.05.20 02:47
      답장을 주셔서 감사드립니다. 헌데 아래의 코딩을 복사하여 실행을 시켰는데 에라는 나지않고 컴파일이 ...
    • 마성수
    • 1999.05.19 00:45
    • 1 COMMENTS
    • /
    • 0 LIKES
    • redhead
      1999.05.19 01:01
      마성수 wrote: > 정말 이상한 일입니다. > MDI Child 폼에서 일반 폼을 CREAT할려고 했는데.. > 버튼을 ...
    • 왕초보
    • 1999.05.19 00:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • redhead
      1999.05.19 01:04
      왕초보 wrote: > 주 프로그램에서 DLL안에 있는 윈도우를 MDI Child로 설정하여 > 윈도우를 뛰운다음......
    • 안종필
    • 1999.05.18 23:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.19 03:58
      폰트를 굴림체로 맞추고 해보세요. 넓이가 일정한 폰트를 사용해야 합니다. Fixed Pitch 폰트라고 합니다...