Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 17 kết quả

Đề tài: Hàm nào giúp đổi icon của 1 chương trình

  1. #1
    Ngày gia nhập
    10 2008
    Nơi ở
    sài gòn
    Bài viết
    422

    Mặc định Hàm nào giúp đổi icon của 1 chương trình

    Giả sử mình muốn chưong trình của mình sẽ được thay đổi icon khi nó được chạy thì phải dùng các hàm API nào,VD như mình có lưu 1 icon dạng .ico sau đó muốn là click vào chuýong trình là nó sẽ lấy icon của chương trình đó,vậy phải làm thế nào???


    có thể sử dụng hàm
    HANDLE BeginUpdateResource( LPCTSTR pFileName,
    BOOL bDeleteExistingResources
    );
    để làm việc đó được hkoong
    Đã được chỉnh sửa lần cuối bởi haian : 20-12-2008 lúc 10:47 AM.

  2. #2
    Ngày gia nhập
    09 2007
    Bài viết
    724

    Cái này trong forum có rồi bạn chụi khó search nhé.

  3. #3
    Ngày gia nhập
    10 2007
    Nơi ở
    /root
    Bài viết
    318

    Try WM_SETICON

  4. #4
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    uhm uhm hỏi có vẽ không rõ ràng, ý HaiAn là change Icon Runtime à ? Hay là lấy icon của chương trình khác ?

    1. Nếu là change Icon runtime thì có hàm sẵn rồi, giờ đang ở tiệm không tìm được cậu thử xem lại nhé.
    2. Nếu là lấy icon của chương trình khác thì cậu lên codeproject, có 1 bài về phần này rồi, trong mục Desktop Dev.

  5. #5
    Ngày gia nhập
    10 2008
    Nơi ở
    sài gòn
    Bài viết
    422

    Try WM_SETICON
    cái này là 1 tham số mình chỉ biết có vậy,còn tham số của cái nào thế
    cố gắng

  6. #6
    Ngày gia nhập
    11 2007
    Nơi ở
    Biết để làm gì?
    Bài viết
    827

    Mặc định Hàm nào giúp đổi icon của 1 chương trình

    Không biết MFC,nhưng có cái code demo extract icon của 1 file bất kỳ bằng C#,xem giúp được bạn kô?Chương trình đơn giản lắm,1 form có 1 cái button btnExtract, 2 cái picturebox là picIconSmall và picIconLarge.

    Visual C# Code:
    1. using System;
    2. using System.Collections.Generic;
    3. using System.ComponentModel;
    4. using System.Data;
    5. using System.Drawing;
    6. using System.Text;
    7. using System.Windows.Forms;
    8. using System.Runtime.InteropServices;
    9.  
    10. namespace Extract_Icon
    11. {
    12.     public partial class Form1 : Form
    13.     {
    14.         private const int SHGFI_ICON = 0x100;
    15.         private const int SHGFI_SMALLICON=0x1;
    16.         private const int SHGFI_LARGEICON = 0x0;
    17.  
    18.         public struct SHFILEINFO
    19.         {
    20.             //handle to the icon representing the file
    21.             public IntPtr hIcon;
    22.             //index of the icon within th image list
    23.             public int iIcon;
    24.             //various attrubutes of the file
    25.             public uint dwAttributes;
    26.             //Path to the file
    27.             [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
    28.             public string szDisplayName;
    29.  
    30.             [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)]
    31.             public string szTypeName;
    32.         }
    33.         [DllImport("Shell32.dll")]
    34.         public static extern IntPtr SHGetFileInfo(string pszPath, uint dwFileAttributes, ref SHFILEINFO psfi, int cbFileInfo, uint uFlags);
    35.  
    36.         public Form1()
    37.         {
    38.             InitializeComponent();
    39.         }
    40.  
    41.         private void btnExtract_Click(object sender, EventArgs e)
    42.         {
    43.             IntPtr hImgSmall;
    44.             IntPtr hImgLarge;
    45.  
    46.             SHFILEINFO shinfo = new SHFILEINFO();
    47.  
    48.             // Open file se lay icon
    49.             if(openFile.ShowDialog() == DialogResult.OK)
    50.             {
    51.                 string FileName = openFile.FileName;
    52.                 System.Drawing.Icon myIcon;
    53.                 hImgSmall = SHGetFileInfo(FileName, 0, ref shinfo, Marshal.SizeOf(shinfo), SHGFI_ICON | SHGFI_SMALLICON);
    54.                 myIcon = System.Drawing.Icon.FromHandle(shinfo.hIcon);
    55.                 picIconSmall.Image = myIcon.ToBitmap();
    56.                
    57.  
    58.                 hImgLarge = SHGetFileInfo(FileName, 0, ref shinfo, Marshal.SizeOf(shinfo), SHGFI_ICON | SHGFI_LARGEICON);
    59.                 myIcon = System.Drawing.Icon.FromHandle(shinfo.hIcon);
    60.                 picIconLarge.Image = myIcon.ToBitmap();
    61.              
    62.             }
    63.         }
    64.         }
    65.     }
    Cánh Chym ứ mỏi

  7. #7
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    WM_SETICON ko dùng trong trường hợp này được, vì haian send qua 1 process khác, nó không handle thì ko làm gì được cả

  8. #8
    Ngày gia nhập
    10 2008
    Nơi ở
    sài gòn
    Bài viết
    422

    WM_SETICON ko dùng trong trường hợp này được, vì haian send qua 1 process khác, nó không handle thì ko làm gì được cả
    Mình muốn khi kích vào chương trình của mình,thì icon của nó sẽ thay đổi

  9. #9
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Thôi tối tớ viết tớ send cho cậu luôn ok ?

    Rồi nè, click icon1 thì đổi cái icon của chương trình bạn, dùng hàm SetIcon() clic icon2 thì đổi icon chương trình bạn dùng SendMessage() { 2 cái này giống nhau }

    Click icon3 thì cậu phải open cái notepad lên, nó đổi icon của notepad.
    Attached Files Attached Files

  10. #10
    Ngày gia nhập
    10 2007
    Nơi ở
    /root
    Bài viết
    318

    Trích dẫn Nguyên bản được gửi bởi kidkid Xem bài viết
    WM_SETICON ko dùng trong trường hợp này được, vì haian send qua 1 process khác, nó không handle thì ko làm gì được cả
    Visual C++ Code:
    1. SendMessage(WM_SETICON,ICON_SMALL,(LPARAM)icon2);

    Kid đang tự mâu thuẫn với chính mình .

Các đề tài tương tự

  1. Cần giúp đỡ về Icon, Hide Systemtray và các vấn đề khác...
    Gửi bởi khactuan-090 trong diễn đàn Nhập môn lập trình Java
    Trả lời: 0
    Bài viết cuối: 02-01-2013, 08:01 PM
  2. Làm sao để tạo icon cho file exe của mình trong resoure icon?
    Gửi bởi luongtankhang123 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 25-01-2012, 07:54 PM
  3. Graphic Thắc mắc Icon bị nhòe khi chọn Large Icon trong ListView
    Gửi bởi manocanh trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 16-04-2011, 11:36 PM
  4. [Icon] Bộ icon hỗ trợ visual studio 2005
    Gửi bởi nhc1987 trong diễn đàn Công cụ, ebooks C#, ASP.NET, và Windows Mobile
    Trả lời: 4
    Bài viết cuối: 13-05-2008, 10:41 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn