- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的程序中有一个分层窗口,它(在视觉上)似乎工作正常,但 UpdateLayeredWindow
的返回代码应该是成功时的非零值。在我的例子中,它是 0,GetLastError
返回 87,这是一个不正确的参数。有人可以告诉我我的设置是否有问题吗?这是完整的功能,窗口样式为WS_EX_LAYERED|WS_EX_TOPMOST
VàWS_POPUP
。
bool SplashScreen(HWND hwnd, HINSTANCE m_hinstance)
{
HBITMAP hBitmap = (HBITMAP)LoadImage(m_hinstance, "splash.bmp", IMAGE_BITMAP, 640, 640, LR_LOADFROMFILE);
PAINTSTRUCT ps;
HDC hdc;
BITMAP bitmap;
HDC hdcMem;
HGDIOBJ oldBitmap;
int result=0;
if(!SetLayeredWindowAttributes(hwnd, 0, (255 * 100) / 100, LWA_ALPHA))
{
char msg[255];
sprintf(msg,"Error SetLayeredWindowAttributes: %d",GetLastError());
MessageBox(hwnd,msg,"System",MB_OK);
trả về false;
}
hdc = BeginPaint(hwnd, &ps);
if(!hdc)
{
char msg[255];
sprintf(msg,"Error BeginPaint: %d",GetLastError());
MessageBox(hwnd,msg,"System",MB_OK);
trả về false;
}
hdcMem = CreateCompatibleDC(hdc);
if(!hdcMem)
{
char msg[255];
sprintf(msg,"Error CreateCompatibleDC: %d",GetLastError());
MessageBox(hwnd,msg,"System",MB_OK);
trả về false;
}
oldBitmap = SelectObject(hdcMem, hBitmap);
GetObject(hBitmap, sizeof(bitmap), &bitmap);
result=BitBlt(hdc, 0, 0, 640, 640, hdcMem, 0, 0, SRCCOPY);
if(result==0)
{
char msg[255];
sprintf(msg,"Error BitBlt: %d",GetLastError());
MessageBox(hwnd,msg,"System",MB_OK);
trả về false;
}
BLENDFUNCTION blend = { 0 };
blend.BlendOp = AC_SRC_OVER;
blend.SourceConstantAlpha = 255;
blend.AlphaFormat = AC_SRC_ALPHA;
result=UpdateLayeredWindow(hwnd,GetDC(NULL),NULL,NULL,hdcMem,NULL, RGB(0,0,0),&blend, ULW_ALPHA);// Returns non-zero on success(!), in reality works when 0 is returned.
if(result==0)
{
char msg[255];
sprintf(msg,"Error UpdateLayeredWindow: %d",GetLastError());// Error UpdateLayeredWindow: 87
MessageBox(hwnd,msg,"System",MB_OK);
trả về false;
}
result=SetLayeredWindowAttributes(hwnd, RGB(255,255,255), 0, ULW_COLORKEY);
if(result==0)
{
char msg[255];
sprintf(msg,"Error SetLayeredWindowAttributes: %d",GetLastError());
MessageBox(hwnd,msg,"System",MB_OK);
trả về false;
}
result=EndPaint(hwnd, &ps);
if(result==0)
{
char msg[255];
sprintf(msg,"Error EndPaint: %d",GetLastError());
MessageBox(hwnd,msg,"System",MB_OK);
trả về false;
}
SelectObject(hdcMem, oldBitmap);
DeleteDC(hdc);
DeleteObject(hdcMem);
trả về giá trị đúng;
}
câu trả lời hay nhất
您正在同一 HWND 上调用 SetLayeredWindowAttributes()
Và UpdateLayeredWindow()
。那是行不通的,文档对此非常清楚:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms633540(v=vs.85).aspx
Note that once SetLayeredWindowAttributes has been called for a layered window, subsequent UpdateLayeredWindow calls will fail until the layering style bit is cleared and set again.
不要同时使用 SetLayeredWindowAttributes()
Và UpdateLayeredWindow()
。它们是非常不同的方法。要么将 SetLayeredWindowAttributes()
用于传统的 WM_PAINT
绘图,要么将 UpdateLayeredWindow()
用于内存位图。不要同时使用两者。根据您所展示的内容,您应该单独使用 UpdateLayeredWindow()
。它会设置一个位图作为窗口内容,同时设置窗口的透明度/alpha。
并且不要在 WM_PAINT
处理程序之外使用 Begin/EndPaint()
。
关于c++ - Windows API : UpdateLayeredWindow return values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21654547/
Tôi đã thiết lập dịch vụ Quản lý API Azure và định cấu hình nó trên một miền tùy chỉnh. Trong phần cấu hình của dịch vụ Quản lý API trong cổng Azure, tôi thiết lập như sau: Vì đây là hệ thống máy khách nên tôi phải che giấu các chi tiết, nhưng đây là những điều cơ bản:
Tôi là một lập trình viên mới đang làm quen với React Native. Gần đây tôi đã bắt đầu tìm hiểu về API tìm nạp và cách thức hoạt động của nó. Vấn đề của tôi là tôi không thể tìm thấy ví dụ về những người sử dụng khóa API để truy cập thông tin trong câu lệnh get của họ (Tôi đang gặp khó khăn trong việc trình bày rõ ràng cách thức
Có rất nhiều thông tin về API là gì, nhưng tôi không thể tìm thấy những gì tôi cần về sự khác biệt giữa API plugin và API thư viện. Dù sao thì tôi cũng không hiểu. Trong cuốn sách API tài liệu, tôi đọc: API plugin và AP thư viện
đóng cửa. Câu hỏi này không đáp ứng các nguyên tắc của Stack Overflow. Hiện tại nó không chấp nhận câu trả lời. Bạn muốn cải thiện vấn đề này? Câu hỏi được cập nhật để làm cho câu hỏi trở thành chủ đề cho Stack Overflow. Đóng cửa 7 năm trước Cải thiện điều này
Tôi đang cố gắng tìm ra cách tốt nhất để thiết kế kịch bản sau. Giả sử tôi đã triển khai API REST để nhận sách từ các nhà cung cấp khác nhau và trả lại cho khách hàng của riêng tôi. Mỗi nhà cung cấp cung cấp một API riêng để cung cấp sách cho người tiêu dùng.
Xin ai đó giải thích cho tôi cách sử dụng khóa api và công dụng của nó. Tôi đã tìm kiếm rất nhiều về vấn đề này nhưng có những câu trả lời khác nhau và mâu thuẫn. Một số người nói rằng khóa API là bí mật và nó không bao giờ được gửi như một phần của quá trình liên lạc, trong khi những người khác gửi nó cho khách hàng
đóng cửa. Câu hỏi này dựa trên ý kiến. Hiện tại nó không chấp nhận câu trả lời. Bạn muốn cải thiện câu hỏi này? Cập nhật câu hỏi để việc chỉnh sửa bài đăng này có thể trả lời nó bằng các sự kiện và trích dẫn. Đã đóng 4 năm trước. Cải thiện điều này
Ai đó có thể cho tôi biết tại sao Trình quản lý API WSo2 không xác thực không? Tôi đã thiết lập hai phiên bản Trình quản lý API WSo2 1.8.0 và tạo một api. Nó hoạt động tốt như một api nguyên mẫu.
Tôi tình cờ gặp Fluent API trong quá trình học DSL. Tôi đã tìm kiếm rất nhiều về API thông thạo... Kết luận cơ bản mà tôi có thể rút ra là API thông thạo sử dụng chuỗi phương thức để làm cho mã thông thạo. Nhưng tôi không thể hiểu được - trong các ngôn ngữ hướng đối tượng chúng ta
Về cơ bản, điều tôi quan tâm là thiết lập Trình quản lý API WSO2 ở nhiều khu vực, chẳng hạn như Châu Á, Hoa Kỳ và Châu Âu. Một số API sẽ được triển khai tại các trung tâm dữ liệu ở từng khu vực, trong khi các API khác sẽ chỉ được triển khai ở các khu vực cụ thể. Lý tưởng nhất, điều tôi muốn là một
Tôi đang xây dựng API của riêng mình để: 1) Ứng dụng Android 2) Ứng dụng dành cho máy tính để bàn Một trong các url của tôi là: http://api.chatapp.info/order_api/files/getbeers.php của tôi
Tôi cần hiển thị số liệu phân tích cho trang web của mình cho tất cả người dùng, nhưng khi sử dụng OAuth, nó sẽ hiển thị số liệu phân tích cho trang web được định cấu hình cho người dùng đã đăng nhập. Làm cách nào tôi có thể triển khai trang tổng quan bằng API nhúng nhưng chỉ hiển thị số liệu phân tích trang web của mình? Khả năng tốt nhất tôi có thể nghĩ đến là sử dụng khóa API thay vì khách
Tôi đang nghiên cứu cách các công ty lớn quản lý API công khai của họ. Tôi đang nghĩ đến các công ty có API trưởng thành, chẳng hạn như Google, Facebook, Twitter và Amazon. Những công ty này tiết lộ cho công chúng nhiều thông tin A khác nhau.
Sau đây là phương pháp được ưu tiên trong ngành khi xác định API mà máy khách có thể truy cập: a) Xác định một tập hợp rõ ràng các phương thức API, mỗi phương thức có mục đích rất hẹp và cụ thể, ví dụ: SetUserName SetUserAge Se
Điều này xảy ra cả cục bộ trên máy xứng đáng và khi được triển khai. Tôi đã có thể sử dụng thành công API Explorer thông qua hướng dẫn sổ lưu bút, nhưng bây giờ tôi đã tạo dự án của riêng mình và cố gắng truy cập API đầu tiên mà tôi đã viết, nó không bao giờ xuất hiện. Dòng chữ "Đang tải" màu vàng bên cạnh thanh tìm kiếm
Tôi đang cố gắng lấy kinh độ và vĩ độ bằng địa chỉ IP của mình bằng cách sử dụng http://ip-api.com/ api. Khi tôi truy cập http://ip-api.com/json từ trình duyệt của mình hoặc sử dụng Curl, nó sẽ trả về ở định dạng json
Ví dụ kinh điển ở đây là API của Twitter. Về mặt khái niệm, tôi hiểu cách thức hoạt động của API REST, về cơ bản nó chỉ truy vấn máy chủ của họ về yêu cầu cụ thể của bạn và bạn nhận được phản hồi ở đó (JSON, XML, v.v.), điều này thật tuyệt. Nhưng
Tiêu đề hay nhất mà tôi có thể nghĩ ra, nhưng để làm rõ, tình huống là thế này: Tôi đang phát triển một dịch vụ giống như URL ngắn cho phép người dùng "đăng nhập" bằng tài khoản Twitter của họ và đăng nội dung. Dịch vụ này hiện có thể được đưa vào Tweetdeck
Tôi đang thiết kế một sơ đồ API để quản lý các nhận xét và chủ đề thảo luận. Tôi muốn có một dấu chấm /discussions/:discussionId và khi bạn NHẬN nó sẽ trả về một tập hợp các nhận xét và một số siêu dữ liệu. Các bình luận có thể được truy cập riêng lẻ tại /discus
đóng cửa. Câu hỏi này cần tập trung hơn. Hiện tại nó không chấp nhận câu trả lời. Bạn muốn cải thiện câu hỏi này? Đã cập nhật câu hỏi để chỉ tập trung vào một vấn đề chỉnh sửa bài đăng này. Đã đóng vào năm ngoái. Cải thiện nhiệm vụ này
Tôi là một lập trình viên xuất sắc, rất giỏi!