我知道《windows95 开发人员指南》?里好像有这个数据结构,但是现在手头没有,又不愿意再down,不知道那位哥们有?

解决方案 »

  1.   

    yansea(思宏) 友想做什么说出来学习学习:) 帮你找找:)
      

  2.   

    哦,在windows.pas里有声明的;type
      PDlgTemplate = ^TDlgTemplate;
      {$EXTERNALSYM DLGTEMPLATE}
      DLGTEMPLATE = packed record
        style: DWORD;
        dwExtendedStyle: DWORD;
        cdit: Word;
        x: SHORT;
        y: SHORT;
        cx: SHORT;
        cy: SHORT;
      end;
      TDlgTemplate = DLGTEMPLATE;  { 32 bit Dialog item template. }
      PDlgItemTemplate = ^TDlgItemTemplate;
      {$EXTERNALSYM DLGITEMTEMPLATE}
      DLGITEMTEMPLATE = packed record
        style: DWORD;
        dwExtendedStyle: DWORD;
        x: SHORT;
        y: SHORT;
        cx: SHORT;
        cy: SHORT;
        id: Word;
      end;
      TDlgItemTemplate = DLGITEMTEMPLATE;分怎么办?
      

  3.   

    to  wjlsmail(计算机质子) 
    刚才没看到你的回复,我在分析pe文件格式,就像exescope那样,当然现在还差的多呢。
    不过windows.pas里的声明似乎还不够,我又下了那本书,再改改吧。另,若不嫌弃,分就都给你吧。
    不是倒分!严正声明!^_^
      

  4.   

    typedef struct {
      WORD wDlgVer; //always 1;
      WORD wSignature; //alwaya 0xFFFF;
      DWORD dwHelpID;
      DWORD dwExStyle; //such as ws_ex_topmost;
      DWORD dwStyle; //such as ws_caption;
      WORD cDlgItems;
      Short x; // in pixels
      Short y; // in pixels
      Short cx; //in dialog box units
      Short cy;  //indialog box units;
      Byte bStartOfStrings;
    } DLGTEMPLATEEX, *PDLGTEMPLATEEX;若dlgtemplateex结构的style标志的ds_setfont位是on的话,有一个fontinfoex结构直接附于窗体标题之后;typedef struct{
      short nPoinSize;
      short nWeight; // such as fw_normal
      short fitalic; //true or false;
      Byte dStartOfStrings; //font name;
    }FONTINFOEX, *PFONTINFOEX;多个子视窗结构
    typedef struct{
      DWORD dwHelpID;
      DWORD dwExstyle; //such as ws_ex_controlparent;
      DWORD dwStyle; //such as ws_tabstop
      short x;
      short y;
      short cx;
      short cy;
      DWORD id;
      BYTE bStartOfStrings;
      WORD wExtraCount ; //ususlly 0
    } DLGITEMTEMPLATEEX, *TDLGITEMTEMPLATEEX;
      

  5.   

    这本书叫《Windows 95 : A Developer’s Guide》
    作者是jeffrey richter,也是《windows 核心编程》一书的作者,更是我的偶像~~我在唱独脚戏吗~郁闷
      

  6.   


    自定义公用对话框的一些Label:procedure TForm1.OpenDialog1Show(Sender: TObject);{First, we need to determine identifiers of dialog'scontrols, they are following:}constLB_FILETYPES_ID = 1089; // "File types:" labelLB_FILENAME_ID = 1090; // "File name:" labelLB_DRIVES_ID = 1091; // "Look in:" labelStr1 = 'Four';Str2 = 'Five';Str3 = 'One';Str4 = 'Two';Str5 = 'Three';varhOpenDialog: HWND;beginhOpenDialog := GetParent(OpenDialog1.Handle);SendMessage(hOpenDialog, CDM_SETCONTROLTEXT, idOk, Longint(PChar(Str1)));SendMessage(hOpenDialog, CDM_SETCONTROLTEXT, idCancel, Longint(PChar(Str2)));SendMessage(hOpenDialog, CDM_SETCONTROLTEXT, LB_FILETYPES_ID, Longint(PChar(Str3)));SendMessage(hOpenDialog, CDM_SETCONTROLTEXT, LB_FILENAME_ID, Longint(PChar(Str4)));SendMessage(hOpenDialog, CDM_SETCONTROLTEXT, LB_DRIVES_ID, Longint(PChar(Str5)));end;procedure TForm1.Button1Click(Sender: TObject);beginOpenDialog1.Execute;end;***********procedure TForm1.PrintDialog1Show(Sender: TObject);beginSetWindowText(GetDlgItem(PrintDialog1.Handle, idOk), '&OK2');SetWindowText(GetDlgItem(PrintDialog1.Handle, idCancel), '&Cancel2');SetWindowText(GetDlgItem(PrintDialog1.Handle, 1025), '&Properties2');end;// to Enumerate Control - IDs:function EnumProc(wnd: HWND; Lines: TStrings): BOOL; stdcall;varbuf, Caption: array [0..255] of char;beginResult := True;GetClassname(wnd, buf, 256);GetWindowText(wnd, Caption, 256);Lines.Add(Format('ID: %d, class: %s, caption: %s',[GetDlgCtrlID(wnd), buf, Caption]));end;procedure TForm1.PrintDialog1Show(Sender: TObject);beginmemo1.Clear;EnumChildWindows(Printdialog1.Handle, @EnumProc, Integer(memo1.Lines));end;注意,OpenDialog.Handle不是那个窗口的Handle,需要用GetParent(OpenDialog.Handle)来获取真正的Handle。因此EnumChildWindows对于OpenDialog来说,应该是:EnumChildWindows(GetParent(OpenDialog1.Handle),@EnumProc,Integer(Memo1.Lines));{ Win2K OpenDialog的ID和Class信息:ID: 1091, class: Static, caption: 查找范围(&I):ID: 1137, class: ComboBox, caption:ID: 1088, class: Static, caption:ID: 1088, class: ToolbarWindow32, caption:ID: 1120, class: ListBox, caption:ID: 1090, class: Static, caption: 文件名(&N):ID: 1148, class: ComboBoxEx32, caption:ID: 1148, class: ComboBox, caption:ID: 1148, class: Edit, caption:ID: 1089, class: Static, caption: 文件类型(&T):ID: 1136, class: ComboBox, caption:ID: 1040, class: Button, caption: 以只读方式打开(&R)ID: 1, class: Button, caption: 打开(&O)ID: 2, class: Button, caption: 取消ID: 1038, class: Button, caption: 帮助(&H)ID: -1, class: ScrollBar, caption:ID: 0, class: #32770, caption:}
     
      

  7.   

    to  wjlsmail(计算机质子) 
    又没看到你的回复,不好意思哦~~
    猛料里我没看倒啊,回头再找找看。
    另外,我也只是点到为止,以后多多交流~~
      

  8.   

    Windows 95 : A Developer’s Guide  这个你都有 ????
      

  9.   

    当然,是候捷翻译的,你想要吗,网上有好多地方可以down的,csdn也有
      

  10.   

    能不能用要看实际情况的,不过书中很多地方到现在还有借鉴之处。
    或者,只有这种体系的windows存在就有它的意思。
    jjhou.csdn.net
    有好多好书呢!!!
      

  11.   

    哈哈,我是你的马甲呀!
    开个玩笑~~这书是pdf的,我看着很不爽,也打了几章出来。
    那时候就因为几本好书都是电子版的,买了个打印机~~
    过去的事情了......现在对技术也没什么有兴趣了,唉
      

  12.   

    这回变对台戏了,呵呵
    书是好书,强烈推荐!
    还有一本也不错,中文叫《windows编程大揭密》??
    不瞒你说,我在263还有个email注册的叫jefferyrichter呢,^_^
      

  13.   

    你还是学生?不错,有发展!
    还是年轻好啊,另,我这里qq或者msn都不方便,没办法~
      

  14.   

    我在公司,消息队列其实有点复杂,在《windwos核心编程》里有一章专门解释的这个问题。
    我也一句两句说不清楚(主要是都忘了^_^)
      

  15.   

    http://expert.csdn.net/Expert/topic/1654/1654985.xml?temp=.787182这个您瞧瞧:)
    -------------------------------------我的意思是这样 :只要队列中有我定义的消息就优先处理,可以么 ?
      

  16.   

    不过一个线程可以调用MsgWaitForMultipleObjects或MsgWaitForMultipleObjectsEx,是线程等待它自己得消息。
      

  17.   

    单就一个showmessage而言,或者有办法实现(我不知道),不过这有点极端了,编译器?