|   | #2wp2319572014-11-27 11:00 | 
    目前只有20分,请懂的朋友帮忙
/////////////////////////////////////////// MyPePlug.h ///////////////////////////////////////////////////////////
#ifdef MYPEPLUG
#else
#define MYPEPLUG extern "C" __declspec(dllimport)
#endif
MYPEPLUG void LoadPlug(const DWORD reversed, 
             HWND hWnd, 
             UINT msg, 
             WPARAM wParam, 
             LPARAM lParam);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////// MyPePlug.cpp//////////////////////////////////////////////////////////////
#include <Windows.h>
#define MYPEPLUG extern "C" __declspec(dllexport)
#include "MyPePlug.h "
bool flag = true;
void MySetLayeredWindowAttributes(HWND hWnd)
{
  SetWindowLong(hWnd,GWL_EXSTYLE,
    GetWindowLong(hWnd,GWL_EXSTYLE)^0x80000);
  HINSTANCE hInst = LoadLibrary("User32.DLL"); 
  if(hInst) 
  {            
    typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD);          
    MYFUNC fun = NULL;
    //取得SetLayeredWindowAttributes函数指针     
    fun=(MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");
    if(fun)fun(hWnd,0,128,2);     
    FreeLibrary(hInst); 
  }
}
void LoadPlug(const DWORD reversed, HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
  switch(msg) {
  case WM_COMMAND:
    if(wParam == 118)//这是我自己通过资源添加的一个菜单的id
  {
//由于我的vc++的sdk是老版本,所以没有SetLayeredWindowAttributes函数,如果你的sdk
//是新版本,就不用我这么麻烦了,你就可以直接调用SetLayeredWindowAttributes函数了
  MySetLayeredWindowAttributes(hWnd);
  }
  else if(wParam == 119)
  {
    if(flag)
    {
      SetWindowPos(hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE);
      flag=false;
    }
    else
    {
      SetWindowPos(hWnd,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE);
      flag=true;
    }
  }
  }
}  

 程序代码:
程序代码: